public class chapter01 {
public static void main(String[] args) {
//两个线性表,A,B
//找出两集合的不重复元素
ArrayList<String> a = new ArrayList<>();
a.add("李白");
a.add("杜甫");
a.add("韩愈");
ArrayList<String> b = new ArrayList<>();
b.add("李白");
b.add("陶渊明");
b.add("杜甫");
b.add("李清照");
getDif01(a, b);
getDif02(a, b);
}
public static void getDif01(ArrayList<String> a,ArrayList<String> b ) {
ArrayList<String> dif = new ArrayList<>();
//查找出a表中不包含b的元素
for (String s : b) {
if (!(a.contains(s))) {
dif.add(s);
}
}
//查找出b表中不包含a的元素
for (String s : a) {
if (!(b.contains(s))) {
dif.add(s);
}
}
System.out.println(Arrays.toString(dif.toArray()));
}
public static void getDif02(ArrayList<String> a, ArrayList<String> b) {
//1代表重复元素,2表不重复元素
HashMap<String, Integer> map = new HashMap<>();
ArrayList<String> dif = new ArrayList<>();
for (String s : a) {
map.put(s, 1);
}
for (String s : b) {
//根据b的元素作为key去查找,不为null代表重复元素
if (map.get(s) != null) {
//map会覆盖之前重复的元素,从而1都是不重复的元素
map.put(s, 2);
}else{
map.put(s, 1);
}
}
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String next = iterator.next();
if (map.get(next) == 1) {
dif.add(next);
}
}
System.out.println(Arrays.toString(dif.toArray()));
}
}
Java代码找出两个集合的不同的元素的两种方法
猜你喜欢
转载自blog.csdn.net/qq_35953966/article/details/105197793
今日推荐
周排行