java-----求兩個list的交集、並集、和差集
阿新 • • 發佈:2019-02-04
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());
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中沒有的內容。