简述
boolean flag = listA.retainAll(listB)
剔除listA在listB中不存在的元素,执行方法后的listA的效果等同于listA和listB的交集;区别点就是flag的结果表示的是listA的值是否发生了变化,如果变了,则返回true,否则返回false;如果listA和listB的元素一样,此时flag返回false。listC.retainAll(setA),也可实现同等效果。
java示例:
package com.tao.stu.test.collection;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @Author Taoyongpan
* @Date 2022/11/10 4:26 PM
* @Version 1.0
*/
public class RationTest {
public static void main(String[] args) {
List<Integer> listA = new ArrayList<>();
listA.add(1);
listA.add(2);
listA.add(3);
listA.add(4);
List<Integer> listB = new ArrayList<>();
listB.add(2);
listB.add(3);
listB.add(4);
listB.add(5);
System.out.println(listA.retainAll(listB));
System.out.println(listA);
System.out.println("------------------------------------");
List<Integer> listC = new ArrayList<>();
listC.add(1);
listC.add(2);
listC.add(3);
listC.add(4);
Set<Integer> setA = new HashSet<>();
setA.add(2);
setA.add(3);
setA.add(4);
setA.add(5);
System.out.println(listC.retainAll(setA));
System.out.println(listC);
}
}