ArrayList的交集,差集,并集,去重并集,arraylist交集
分享于 点击 22305 次 点评:183
ArrayList的交集,差集,并集,去重并集,arraylist交集
//创建两个ArrayList并添加元素
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
判断交集:
list2.retainAll(list1);
if(list1.size()>0){
System.out.println("存在交集");
}
retainAll()方法通过检测list1的大小,大小改变返回true(没有交集返回true),大小不变返回false(两集合相同返回false)。不能通过true或false确定是否存在交集,只能通过list1.seze()判断。
输出交集:可以通过双重for循环把相同结果输出;下面使用了set去重。
//用set去重特点求交集
HashSet<Integer> hashSet=new HashSet<Integer>();
//list3储存交集
List<Integer> list3 = new ArrayList<Integer>();
for (Integer i:list1
) {
hashSet.add(i);
}
for (Integer i:list2
) {
if(hashSet.add(i)==false){//add失败则认为有相同元素,存放到list3
list3.add(i);
}
}
System.out.println(list3);
差集:
// 差集,属于list1而不属于list2
list1.removeAll(list2);
System.out.println("差集:"+list1);
并集:
// 并集
list1.addAll(list2);
System.out.println("并集:"+list1);
去重并集:
// 无重复并集
list2.removeAll(list1);
list1.addAll(list2);
for (Integer i : list1) {
System.out.println(i);
}
相关文章
- 暂无相关文章
用户点评