stream流拿到list集合中的重复元素
时间: 2023-11-26 13:37:29 浏览: 115
stream流可以通过使用Collectors.toSet()方法来获取list集合中的重复元素。具体操作如下:
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("张三", 8, 3000));
personList.add(new Person("李四", 18, 5000));
personList.add(new Person("王五", 28, 7000));
personList.add(new Person("孙六", 38, 9000));
personList.add(new Person("孙六", 38, 9000));
personList.add(new Person("孙六", 38, 10000));
Set<Person> duplicateElements = personList.stream()
.filter(p -> Collections.frequency(personList, p) > 1)
.collect(Collectors.toSet());
System.out.println("重复元素:" + duplicateElements);
相关问题
java stream 判断集合中某元素是否重复
可以使用Java 8中的Stream API来判断集合中某元素是否重复。可以通过将集合转换为流,使用distinct()方法去重,再使用count()方法计数,如果计数结果大于1,则说明集合中存在重复元素。示例代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "apple");
boolean hasDuplicate = list.stream().distinct().count() < list.size();
System.out.println(hasDuplicate); // true
```
在上面的代码中,我们将包含重复元素的List转换为Stream,使用distinct()方法去重,再使用count()方法计数,最后判断计数结果是否小于集合大小即可得出结论。
用stream流求和集合中元素
假设集合中元素类型为整数,可以使用 Java 8 中的 stream 流来求和集合中的元素。示例如下:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum of numbers: " + sum);
```
上述代码中,首先定义了一个包含整数元素的集合 `numbers`,然后使用 `stream()` 方法将其转换为一个流对象。接着使用 `mapToInt()` 方法将流中的元素映射为整数类型,最后使用 `sum()` 方法对整数流求和。最终输出求和结果。
阅读全文