我限制自己仅仅针对我出错的问题。我有一个双值数组;我将数组中非零的所有值都放入哈希映射中,但是当我尝试在哈希映射中显示值时,我得到空值。 需要帮助。我无法弄清楚这是否与Java Collections有关。
Map在for循环之外创建。
for(int i=0;i<aray.length;i++) {
if(aray[i]!=0) {
//non zero array values get divided by some random number not too big number.
aray[i]=aray[i]/somenumber;
hashmap.put(i,aray[i]);
System.out.println(hashmap.get(i));
//if I display aray[i] its a non zero number but hashmap.get(i) is returning null values.
}
}
答案 0 :(得分:-1)
适合我。
class Test
{
public static void main(String ... args)
{
final Integer somenumber = 2;
final Integer[] aray = {5, 4, 3, 2, 1, 0, -1, -2, 42,};
final java.util.HashMap<Integer, Integer> hashmap = new java.util.HashMap<Integer, Integer>();
for(Integer i=0;i<aray.length;i++) {
if(aray[i]!=0) {
//non zero array values get divided by some random number not too big number.
aray[i]=aray[i]/somenumber;
hashmap.put(i,aray[i]);
System.out.println(hashmap.get(i));
//if I display aray[i] its a non zero number but hashmap.get(i) is returning null values.
}
}
}
}
user@host:/tmp$ javac -version javac 1.6.0_20 user@host:/tmp$ javac Test.java user@host:/tmp$ java Test 2 2 1 1 0 0 -1 21
按预期方式在任何地方都没有空值。我没有看到地图会以任何方式返回空值,因为你刚刚添加了值。