云服务器免费试用

java中stream怎么去重并取出重复数据

服务器知识 0 732

在Java中,可以使用stream的distinct()方法来去重,并且使用collect()方法将结果收集到一个新的集合中。

java中stream怎么去重并取出重复数据

例如,假设有一个包含重复元素的List:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 2, 3, 4);

要去重并取出重复的元素,可以按照以下步骤进行:

  1. 将List转换为stream:
Stream<Integer> numberStream = numbers.stream();
  1. 使用distinct()方法去重:
Stream<Integer> distinctStream = numberStream.distinct();
  1. 使用collect()方法将结果收集到一个新的集合中:
List<Integer> distinctNumbers = distinctStream.collect(Collectors.toList());

这样,distinctNumbers中就包含了去重后的元素:[1, 2, 3, 4, 5]。

如果要获取重复的元素,可以使用filter()方法来筛选出重复的元素,然后使用collect()方法将结果收集到一个新的集合中。例如,获取重复的元素2、3、4可以按照以下步骤进行:

  1. 将List转换为stream:
Stream<Integer> numberStream = numbers.stream();
  1. 使用filter()方法筛选出重复的元素:
Stream<Integer> duplicateStream = numberStream.filter(i -> Collections.frequency(numbers, i) > 1);
  1. 使用collect()方法将结果收集到一个新的集合中:
List<Integer> duplicateNumbers = duplicateStream.distinct().collect(Collectors.toList());

这样,duplicateNumbers中就包含了重复的元素:[2, 3, 4]。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java中stream怎么去重并取出重复数据
本文地址: https://solustack.com/72681.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。