字节2
package com.example.springbootdemo;
import java.util.*;
// 两个数组,无序且不重复,求同时存在的元素
/* 1、合并2个数组----这里注意,如果用 ArrayList 的话,还需要转为int数组,用stream
2、因为是不重复的,可以用 hashMap 记录每个元素出现的次数
3、遍历map,返回次数大于1的即可
*/
public class arraysRepeatMap { // 两个数组,无序且不重复,求同时存在的元素
public static void main(String[] args) {
int[] A = {1, 2, 3};
int[] B = {2, 3, 4};
List<Integer> list = new ArrayList<>();
for (int i : A) {
list.add(i);
}
for (int i : B) { list.add(i); }
int[] arrRepeat = list.stream().mapToInt(Integer::intValue).toArray();
repeatNumInStr(arrRepeat);
}
public static void repeatNumInStr(int[] Array) {
//先遍历每个字符(数字)出现的次数
// String str = "122334";
// char[] Array = str.toCharArray();
HashMap<Integer, Integer> map = new HashMap<>();
for (int i : Array) {
if (!map.containsKey(i)) {
map.put(i, 1);
} else {
Integer count = map.get(i);
map.put(i, count + 1);
}
}
// 再遍历HashMap中出现次数>1的字符
// Set<Map.Entry<Character, Integer>> entrySet = map.entrySet();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.print(entry.getKey() + " ");
// System.out.println(entry.getKey()+"="+entry.getValue());
// System.out.println((char) entry.getKey().intValue()); //如果<Integer,Integer>,要把Integer类型转化为Int类,再把char强转为数字
}
}
}
}