java查找数组中重复元素和重复元素的个数
本人前几天面试,被问到一个简单的问题:查找数组中重复元素和重复元素的个数 当时回答的很不完美,面试官说可以用map一层循环就可以解决 ,当时没有想明白,事后想了一下,特此在此记录一下。第一次写博客 ,有什么不对的地方,还请各位大佬指正。
问题
直接上代码
public static void main(String[] args) {
Random random = new Random();
int[] arr = new int[20];
for (int i = 0; i < 20; i++) {
arr[i] = random.nextInt(10);
System.out.print(arr[i] + ",");
}
//System.out.println();
//输出arr数组中重复元素,重复数量
}
看着是不是很简单
我想出了两个解决办法
方法一:用的是数组 两层循环解决
方法二:用的map 一层循环解决
//方法 一
for (int x = 0; x < 10; x++) {
int sumber1 = 0;
for (int j = 0; j < 20; j++) {
//数组中的数循环比较
if (x == arr[j]) {
sumber1++;
} else {
continue;
}
}
System.out.println(x + "重复的个数为" + sumber1);
}
方法一输出的结果!
//方法二
//将数据转成集合
Map<Integer, Integer> map = new HashMap();
for (int a = 0; a < arr.length; a++) {
if (map.get(arr[a])!=null){
map.put(arr[a],map.get(arr[a])+1);
}
else {
map.put(arr[a],1);
}
}
for (int i = 0; i <10 ; i++) {
System.out.println(i+"重复的个数为"+map.get(i));
}
链接: https://blog.csdn.net/weixin_43165750/article/details/105467310.