如果你是一个Java开发者,你一定知道Collections类提供了丰富的方法来处理Java中的List、Set和Map集合类型。在这些方法中,retainAll()方法是一个非常值得注意的方法。
背景
在Java中的List和Set集合类型中,都有一个方法叫做retainAll(),它的作用是保留集合中与另一个集合相同的元素,也就是说,将当前集合中不在另一个集合里的元素删除。例如,假设有一个包含1、2、3、4的List集合,另一个包含1、2、7的List集合,调用retainAll()方法后,第一个集合将只包含1、2两个元素。
优点
retainAll()方法非常简便,可以方便快捷地实现两个List或Set集合的求交集。
retainAll()方法也是比较高效的。如果我们使用传统的for循环来做两个List求交集的操作,时间复杂度是O(n^2),而使用retainAll()方法则可以达到O(n)的时间复杂度。
使用方法
retainAll()方法的使用非常简单,只需要对两个集合调用retainAll()方法即可。下面是一个示例:
List<Integer> list1 = new ArrayList<>(Arrays.asList(1,2,3,4)); List<Integer> list2 = new ArrayList<>(Arrays.asList(1,2,7)); list1.retainAll(list2); System.out.println(list1); // 输出 [1, 2]
小结
Java的retainAll()方法提供了一种非常简便、高效的方式来求两个List或Set集合的交集,它的使用非常简单,我们只需要调用方法,传入另一个集合即可。在实际开发中,我们可以使用retainAll()方法来处理对集合求交集的操作。