Java8 retainAll详解
Java8中的Collection接口提供了一个retainAll方法,用于求两个集合的交集。这个方法会移除调用者集合中与指定集合中不相同的元素,保留两个集合共有的元素。在本文中,我们将详细讨论Java8中的retainAll方法的用法和示例。
retainAll方法的语法
retainAll方法的语法如下:
boolean retainAll(Collection<?> c)
其中,参数c是指定集合,表示要与调用者集合求交集的集合。方法的返回值为boolean类型,表示调用者集合是否发生了变化(即是否成功求交集)。
retainAll方法的使用示例
下面我们通过一个简单的示例来演示retainAll方法的使用。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 创建两个ArrayList集合
ArrayList<Integer> list1 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list2.add(2);
list2.add(3);
list2.add(4);
System.out.println("list1集合中的元素:" + list1);
System.out.println("list2集合中的元素:" + list2);
// 求两个集合的交集
boolean result = list1.retainAll(list2);
if (result) {
System.out.println("成功求交集,list1集合中的元素为:" + list1);
} else {
System.out.println("未成功求交集,list1集合中的元素没有发生改变");
}
}
}
上述示例中,我们创建了两个ArrayList集合list1和list2,并分别向其添加了一些元素。然后调用list1的retainAll方法,传入list2作为参数,求两个集合的交集。最后根据方法的返回值判断是否成功求交集,并输出。
示例运行结果
list1集合中的元素:[1, 2, 3]
list2集合中的元素:[2, 3, 4]
成功求交集,list1集合中的元素为:[2, 3]
从示例运行结果可以看出,list1集合成功求得与list2的交集,结果为[2, 3]。
retainAll方法的注意事项
在使用retainAll方法时,需要注意以下几点:
1. retainAll方法会改变调用者集合本身,而不是返回一个新的集合。
2. retainAll方法会按照参数集合中元素的顺序来保留交集元素的顺序。
3. 如果调用者集合发生了改变,方法会返回true,否则返回false。
总结
通过本文的讲解,我们详细介绍了Java8中的retainAll方法的语法和用法,以及一个简单的示例。retainAll方法可以方便地求两个集合的交集,是对集合操作中的常用方法之一。在实际应用中,我们可以根据具体情况灵活运用该方法,实现集合间的交集运算。