有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java返回的hashmap值为空

我把自己限制在问题的某一部分,我错在哪里。我有一个双值数组;我将数组中所有非零的值放入哈希映射中,但是当我试图在哈希映射中显示这些值时,我得到了空值。 需要帮助。我一直无法确定这是否与Java集合有关

映射是在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) 个答案

  1. # 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
    

    如预期的那样,任何地方都没有空值。我看不出地图会返回空值,因为您刚刚添加了值