Java 求集合的交集,差集,補集
阿新 • • 發佈:2018-12-24
1,求交集
可以直接用ArrayList集合,retainAll()函式,將兩個list集合中相同的元素留下
boolean isContains=list.retainAll(list2);
System.out.println(isContains);
System.out.println("兩個集合的交集:");
for(Integer c:list)
{
System.out.print(c+" ");
}
2,求差集
也可以用ArrayList集合removeALL()函式,需要注意,此時,有兩種情況
boolean notContains1=list2.removeAll(list); System.out.println(notContains1); System.out.println("兩個集合的差集"); for(Integer c:list2) { System.out.print(c+" "); } System.out.println();
boolean notContains2=list.removeAll(list2);
System.out.println(notContains2);
System.out.println("差集");
for(Integer c:list)
{
System.out.println(c);
}
3,求並集
因為List集合允許存在重複的元素,但是在集合中,集合的元素不能有重複的,所以求並集時,用List集合不合適,應該選用set集合,set集合中不允許出現相同的元素,如果兩個集合在合併時,有相同的元素,集合自動去重
Set<Integer>set1=new HashSet<Integer>();
set1.addAll(list);
set1.addAll(list2);
System.out.println("兩個集合的並集");
for(Integer it:set1)
{
System.out.print(it+" ");
}
System.out.println();
完整程式碼
package Work1; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class Work1 { public static void main(String[] args) { List <Integer> list=new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); List<Integer> list2=new ArrayList<Integer>(); list2.add(1); list2.add(3); list2.add(5); list2.add(7); list2.add(9); list2.add(11); boolean isContains=list.retainAll(list2); System.out.println(isContains); System.out.println("兩個集合的交集:"); for(Integer c:list) { System.out.print(c+" "); } System.out.println(); boolean notContains1=list2.removeAll(list); System.out.println(notContains1); System.out.println("兩個集合的差集"); for(Integer c:list2) { System.out.print(c+" "); } System.out.println(); boolean notContains2=list.removeAll(list2); System.out.println(notContains2); System.out.println("差集"); for(Integer c:list) { System.out.println(c); } //求並集 Set<Integer>set1=new HashSet<Integer>(); set1.addAll(list); set1.addAll(list2); System.out.println("兩個集合的並集"); for(Integer it:set1) { System.out.print(it+" "); } System.out.println(); } }