题目:求一个数组中重复的数字,并说明重复的数字是几,同时统计重复的次数
思路:
- 1、对数组进行排序(从小到大)。
- 2、将排序后的数组中相邻的值做差,如果为0则表示这两个数重复。
- 3、声明一个计数器,使用HashMap对重复的数字进行保存,key为重复的数字,value为重复的次数。
public class test07 {
public static HashMap fun(int[]arr){
HashMap<Integer,Integer> map = new HashMap<Integer, Integer>();
Arrays.sort(arr);
int index = 0;
int count = 1;
while(index<arr.length-1){
if(arr[index+1]-arr[index]==0){
count++;
map.put(arr[index+1], count);
}else{
count=1;
}
index++;
}
return map;
}
public static void main(String[] args) {
int[]arr = {1,2,3,2,4,4,2,5,6,6,4,4,43,333,43};
HashMap fun = fun(arr);
System.out.println(fun);
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7b3c57d7309032e2ba6d9186665afbd4.png)