1. 程式人生 > >java-----求兩個list的交集、並集、和差集

java-----求兩個list的交集、並集、和差集

 List list1 =new ArrayList();
  list1.add("1111");
  list1.add("2222");
  list1.add("3333");

  List list2 =new ArrayList();
  list2.add("3333");
  list2.add("4444");
  list2.add("5555");

  //並集
  //list1.addAll(list2);
  //交集
  //list1.retainAll(list2);
  //差集
  //list1.removeAll(list2);
  //無重複並集
    list2.removeAll(list1);
    list1.addAll(list2);


  Iterator<String> it=list1.iterator();
  while (it.hasNext()) {
   System.out.println(it.next());

addAll命令,會把第2個list中的資料新增到第一個list中

retainAll命令,返回的是一個boolean值,如果結果修改了第一個list就返回true,沒修改就返回false,結果會直接修改第一個list,如果第2個list是第一個的子集,就不會修改第一個list。retainAll命令返回的是兩個list同時包含的內容

1、首先呼叫retainAll的方法

2、通過判斷結果集合是否大於0,來確定是否存在交集。不能通過方法返回的True和False來判斷。

當集合A的大小改變的時候返回的是True,大小沒有改變的時候返回的是False

removeAll命令,使用第一個list的內容去減第2個list,也就是說第1個list的結果保留第2個list中沒有的內容。