Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java,使用HM(hashmap)的帮助&;提高效率。使用给定的数组和给定的数字来放置重复的&;HM中的非重复数字是否正确_Java_Arrays_Function_Hashmap - Fatal编程技术网

java,使用HM(hashmap)的帮助&;提高效率。使用给定的数组和给定的数字来放置重复的&;HM中的非重复数字是否正确

java,使用HM(hashmap)的帮助&;提高效率。使用给定的数组和给定的数字来放置重复的&;HM中的非重复数字是否正确,java,arrays,function,hashmap,Java,Arrays,Function,Hashmap,对于一个充满数字且已清空HM的给定数组,如何输入从数组到HM(哈希映射)的所有值,以及重复添加到同一键(即数字)的值(如果数字不在HM中,则从1开始)的数字。我已经写了一个函数来实现这一点,但它似乎不起作用。 这是我的密码: public static void placeInHM(int[] array,HashMap<Integer, Integer> t ) { for(int i: array) { if(t.containsKey(i

对于一个充满数字且已清空HM的给定数组,如何输入从数组到HM(哈希映射)的所有值,以及重复添加到同一键(即数字)的值(如果数字不在HM中,则从1开始)的数字。我已经写了一个函数来实现这一点,但它似乎不起作用。 这是我的密码:

public static void placeInHM(int[] array,HashMap<Integer, Integer> t ) {
        for(int i: array) {
            if(t.containsKey(i)) {
                t.replace(i,t.get(i)+1);
            }
            else {
                t.put(i, 1);
            }
            System.out.println(t);
    }
}
publicstaticvoidplaceinhm(int[]数组,HashMap t){
for(int i:array){
if(t.containsKey(i)){
t、 替换(i,t.get(i)+1);
}
否则{
t、 put(i,1);
}
系统输出打印ln(t);
}
}
我们将不胜感激 示例-数组是:
[2,3,5,3,7,9,5,3,7]

HM应该是这样的,值是相同数字重复的次数):
[3(键),3(值)][2,1][5,2][7,2][9,1]

您试图在for a循环中打印地图。 如果只想打印一次,只需在循环外打印即可

此外,还可以使用getOrDefault

   for(int i: array) {
     t.put(i, t.getOrDefault(i,0)+1);  
}

由于您使用的是增强for循环,所以应该在所有位置将
array[i]
更改为
i
i
是数组元素,而不是数组索引。它仍然不起作用。我至少会在这里更新代码。谢谢当你说它不起作用时,你应该详细说明。代码是否通过编译?它会引发异常吗?是否会产生错误的输出?只需将代码放入一个小测试程序中,它就是finemap tespMap=newhashmap();int[]arr={1,2,3,4,6,5,3,4,2,1,2,3,5,7,6,4,2,1};placeInHM(arr、tespMap);{1=3, 2=4, 3=3, 4=3, 5=2, 6=2, 7=1}