4

我的问题是我有一个 HashMap ,其中键是一个对象,我需要它成为所述对象中的变量之一。目前, HashMap.get() 只查看 myNums 对象,但我需要一种方法来获取 num1 的值,因为那是“真正的键”。我不能使用 myNums.get() 方法,因为我没有 myNums 的实例化。我可以遍历 HashMap 中的每个项目来检查,但我不想这样做。有没有更优雅的解决方案?

是)我有的:

public static void main(String [] args){
   int [] array = {//integers 1-100};
   HashMap < myNums, String > hash = //data from another source;
   for(int i = 0;i < array.length; i++){
       if(hash.get(i) != null)
          OtherFunction(hash.get(i));         
   }
}

public class myNums{
   private int num1;
   private int num2;
   //get and set functions...
}
4

2 回答 2

1

也许条目迭代更能满足您的目的:

for (Entry<MyNums, String> entry : map.entrySet()) {
    System.out.println("Key:" + entry.getKey());
    System.out.println("Value:" + entry.getValue());
}

使用这种迭代样式,您不必一直调用get

于 2012-08-09T21:27:29.220 回答
0

您应该重写 hashCode() 方法并扩展类的 equals() 方法。

private class myNums{
  public int hashCode(){
    //Return something unique
  }
  public boolean equals(myNums that){
    return this.num1==that.num1;
  }
}
于 2012-08-09T21:49:39.007 回答