Java List retainAll 的详解
1. 概述
在Java中,List是一种常用于存储多个元素的有序集合。在某些情况下,我们需要找出两个List中的共同元素,并将其提取出来,这时就可以使用List的retainAll()方法。本文将详细解释List的retainAll()方法的使用及注意事项。
2. retainAll() 方法的定义
在Java中,List接口继承自Collection接口,并在其基础上扩展了一些自身特有的方法。其中,retainAll()方法是其中的一个。其定义如下:
boolean retainAll(Collection<?> c)
retainAll()方法接收一个Collection(包括List)类型的参数c,它会修改当前List,将其仅存在于参数c中的元素移除,保留与参数c中共同出现的元素。
3. 示例
下面给出一个示例,展示了如何使用retainAll()方法来查找共同元素。
import java.util.ArrayList;
import java.util.List;
public class RetainAllExample {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
list1.retainAll(list2);
System.out.println("共同元素: " + list1);
}
}
运行结果:
共同元素: [3, 4]
从示例中可以看出,我们创建了两个List,分别是list1和list2。然后,我们调用list1的retainAll()方法,将其与list2中共同存在的元素保留下来。在这个示例中,3和4是两个List的共同元素,因此运行结果为[3, 4]。
4. 注意事项
在使用retainAll()方法时,需要注意以下几点:
4.1 参数不能为null
retainAll()方法的参数不能为null,否则将会抛出NullPointerException异常。
4.2 修改当前List
retainAll()方法会直接修改当前List,将其只保留与参数中的集合共同存在的元素,同时移除其他元素。
4.3 保留顺序
保留下来的元素将按照其在原List中的顺序进行排列。
4.4 重复元素
如果参数集合中存在重复的元素,那么保留下来的元素中也会包含相同数量的重复元素。
5. 总结
retainAll()方法是Java List接口的一个实用方法,在某些场景下可以帮助我们快速找到两个List中的共同元素。通过使用retainAll()方法,我们可以轻松地将两个List中仅共同出现的元素提取出来。在使用该方法时,需要注意保证参数不为null,并且理解其会修改当前List以及保留元素的顺序和重复性。