import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class DuplicateElements {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(2);
numbers.add(4);
numbers.add(2);
List<Integer> duplicates = numbers.stream()
.collect(Collectors.groupingBy(Integer::valueOf))
.values()
.stream()
.filter(list -> list.size() > 1)
.map(list -> list.get(0))
.collect(Collectors.toList());
System.out.println("Duplicate elements: " + duplicates);
}
}
在这个示例中,我们首先创建了一个包含重复元素的整数列表。然后,我们使用Stream流式数据处理对列表进行操作,以找出重复的元素。具体来说,我们使用Collectors.groupingBy()方法将元素按照它们的值进行分组,然后使用values()方法获取分组后的所有值。接下来,我们使用filter()方法过滤出所有包含多个元素的组,并使用map()方法仅返回每个组中的第一个元素。最后,我们使用collect()方法将所有重复元素收集到一个新的列表中。
运行上面的代码,将输出以下结果:
Duplicate elements: [2, 2]