- 提取两个List的独有元素(去除交集)
/**
* 提取两个List的独有元素(去除交集),返回新List(自动去重,保留空值)
* @param list1 第一个集合
* @param list2 第二个集合
* @return 仅包含独有元素的新List
*/
public List<String> getUniqueElements(List<String> list1, List<String> list2) {
// 1. 转为Set(去重 + 快速查找),兼容空值
Set<String> set1 = new HashSet<>(list1);
Set<String> set2 = new HashSet<>(list2);
// 2. 求差集:list1独有 + list2独有
return Stream.concat(
set1.stream().filter(s -> !set2.contains(s)), // list1独有元素
set2.stream().filter(s -> !set1.contains(s)) // list2独有元素
)
.collect(Collectors.toList());
}