我对我的项目感到震惊......必须保持lang数组的大散列图....我试着用样本但它不工作....我不能存储数组中的键....在此先感谢...为什么我的hashmap会覆盖上次添加的值?
class K{
int key;
}
class V{
int data;
}
class hashmp{
public static void main(String args[]){
HashMap<K,V> hm=new HashMap<K,V>();
K key1=new K();
for(int i=0;i<5;i++){
V val=new V();
key1.key=i;
val.data=i+5;
hm.put(key1,val);
}
System.out.println();
for(int i=0;i<5;i++){
key1.key=i;
V pt=hm.get(key1);
System.out.println("\n"+hm.containsKey(key1)+key1.key);
if(hm.containsKey(key1))
System.out.print(pt.data);
}
}
}
对于我得到....
true0
9
true1
9
true2
9
true3
9
true4
9
更新的代码.....
class K{
long key;
}
class V{
long[] v=new long[10];
}
public void putHash(V val1){
//some code
V s=new V();
K gt=new K();
gt.key=val1.v[0];
if(hm.containsKey(keyArr[(int)gt.key])){
s=hm.get(gt); //get value of key if exists
//some code to modify s
}
gt.key=val1.v[0];
hm.put(gt,s); // put the modified value back to same key
}
谢谢大家给我提供的答案...最后它工作得很好...感谢大家的贡献....
你只是'Key'类的一个实例,所以它们全部相同(equals方法的默认实现中的第一个条件是同一个对象)。在循环内移动'new Key()',一切都很顺利(顺便说一下,重写map key的equals方法会更好)。 –
这足以使用** get()**方法来查找我的条目....我想检索特定键的数据.... –