我写的代码如下,不知道怎么改
public static void main(String[] args) {
int []number={1,2,3,2,3,3,3,4,5};
int times=0;
for(int i=0;i<number.length;i++){
System.out.println(number[i]);
for(int j=0;j<number.length;j++){
if(number[i]==number[j]){
System.out.println(number[i]+" + "+number[j]);
times=times+1;
}
}
}
}
public static void main(String[] args) {
int []number={1,2,3,2,3,3,3,4,5};
Map<Integer, Integer> count = new HashMap<>();
for (int i : number) {
Integer c = count.get(i);
count.put(i, c == null ? 1 : c + 1);
}
count.forEach((k, v) -> System.out.println("数字[" + k + "]出现的次数为:" + v));
}
输出为:
数字[1]出现的次数为:1
数字[2]出现的次数为:2
数字[3]出现的次数为:4
数字[4]出现的次数为:1
数字[5]出现的次数为:1
希望对你有帮助
可以换一种思路,就是用一个数组,每个元素存储对应下标的数的出现次数,累计时直接将对应下标的元素累计即可。
即0下标的元素存储0出现的次数,1,存储1出现的次数,依次类推,遍历累加代码如下:
public static void main(String[] args) {
int []number={1,2,3,2,3,3,3,4,5};
int [] counts = new int[10];
for(int i=0;i<number.length;i++){
int temp = number[i];
counts [temp] +=1;
}
for(int i=0;i<counts.length;i++){
System.out.println("number "+i+", appear count is:"+counts[i]);
}
}
运行结果:
number 0, appear count is:0
number 1, appear count is:1
number 2, appear count is:2
number 3, appear count is:4
number 4, appear count is:1
number 5, appear count is:1
number 6, appear count is:0
number 7, appear count is:0
number 8, appear count is:0
number 9, appear count is:0