java如何打印交集
打印两个集合的交集
在Java中,可以使用retainAll()方法或Java 8的Stream API来获取两个集合的交集。以下是两种常见方法:
方法一:使用retainAll()
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6));
set1.retainAll(set2);
System.out.println("交集: " + set1);
方法二:使用Stream API
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6));
Set<Integer> intersection = set1.stream()
.filter(set2::contains)
.collect(Collectors.toSet());
System.out.println("交集: " + intersection);
打印两个列表的交集
对于列表,可以转换为集合后操作或直接使用Stream:

List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println("交集: " + intersection);
注意事项
retainAll()会直接修改原集合,如需保留原集合需先创建副本- 对于大数据量,HashSet的效率高于列表遍历
- 自定义对象需正确实现
equals()和hashCode()方法






