返回的hashmap值为null

时间:2011-09-29 02:19:27

标签: java null hashmap

我限制自己仅仅针对我出错的问题。我有一个双值数组;我将数组中非零的所有值都放入哈希映射中,但是当我尝试在哈希映射中显示值时,我得到空值。 需要帮助。我无法弄清楚这是否与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.  
    }
}

1 个答案:

答案 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

按预期方式在任何地方都没有空值。我没有看到地图会以任何方式返回空值,因为你刚刚添加了值。