Java 未使用HashMap正确打印每个键的出现次数
我试图打印一个数组中某个特定键出现了多少次,似乎它正在为所有值打印一次。有人能告诉我下面的代码中有什么逻辑错误吗Java 未使用HashMap正确打印每个键的出现次数,java,hashmap,Java,Hashmap,我试图打印一个数组中某个特定键出现了多少次,似乎它正在为所有值打印一次。有人能告诉我下面的代码中有什么逻辑错误吗 import java.util.HashMap; import java.util.Map; public class MostOccuranceOfNumber { public static void main(String[] args) { int[] n = {1,2,3,4,5,6,7,7,7,7}; Map<In
import java.util.HashMap;
import java.util.Map;
public class MostOccuranceOfNumber {
public static void main(String[] args) {
int[] n = {1,2,3,4,5,6,7,7,7,7};
Map<Integer, Integer> map = new HashMap<Integer,Integer>();
// Create Hash Map
for(int i = 0 ; i < n.length ; i++){
if(map.containsKey(n)){
map.put(n[i], map.get(n[i]) +1);
}
else{
map.put(n[i], 1);
}
for(Map.Entry<Integer, Integer> m : map.entrySet()){
System.out.println("Key "+m.getKey()+"Occured"+m.getValue()+"times");
}
}
}
}
import java.util.HashMap;
导入java.util.Map;
公营班级人数最多{
公共静态void main(字符串[]args){
int[]n={1,2,3,4,5,6,7,7,7};
Map Map=newhashmap();
//创建哈希映射
for(int i=0;i
试试这个:
import java.util.HashMap;
import java.util.Map;
public class MostOccuranceOfNumber {
public static void main(String[] args) {
int[] n = {1,2,3,4,5,6,7,7,7,7};
Map<Integer, Integer> map = new HashMap<Integer,Integer>();
// Create Hash Map
for(int i = 0 ; i < n.length ; i++){
if(map.containsKey(n[i])){//you made mistake here
map.put(n[i], map.get(n[i]) +1);
}
else{
map.put(n[i], 1);
}
}
}
for(Map.Entry<Integer, Integer> m : map.entrySet()){
System.out.println("Key "+m.getKey()+"Occured "+m.getValue()+" times ");//Sorry forgot to take it outside
}
}
import java.util.HashMap;
导入java.util.Map;
公营班级人数最多{
公共静态void main(字符串[]args){
int[]n={1,2,3,4,5,6,7,7,7};
Map Map=newhashmap();
//创建哈希映射
for(int i=0;i
为什么要将一个循环嵌套在另一个循环中?您要对每个元素进行迭代,这意味着每次出现7
都要进行一次迭代,因此每次都会打印出计数。你想得到一个只包含唯一值的a集合,然后在查询原始集合的计数时对该集合进行迭代。哦,将一个循环嵌套在另一个循环中是我没有意识到的逻辑错误,但是将其粘贴到for循环之外会再次将每个键值打印为1 onlyif(map.containsKey(n)
没有意义。n
是一个数组。@John你在使用IDE吗?你应该在那一行得到一个可疑的方法调用警告。你仍然在第一行中有第二个for
循环。