java中lambda遍历list集合(集合中是对象)并去重并统计数量
时间: 2023-07-16 21:15:04 浏览: 115
java中List集合及其遍历详解
可以使用Java 8中的Stream API和Lambda表达式来实现。
假设有一个名为`list`的`List`集合,其中包含多个对象,每个对象有一个名为`name`的属性,可以按照以下方式进行去重并统计数量:
```java
Map<String, Long> result = list.stream()
.map(obj -> obj.getName()) // 取出每个对象的name属性
.distinct() // 去重
.collect(Collectors.groupingBy(name -> name, Collectors.counting())); // 统计数量
System.out.println(result);
```
解释一下上述代码:
- `list.stream()`将`List`转换为`Stream`对象。
- `map()`方法将每个对象映射为其`name`属性。
- `distinct()`方法去除重复的`name`。
- `collect()`方法将结果收集到一个`Map`中,其中键为`name`,值为该`name`在原列表中出现的次数。
最后,打印输出`result`即可。
阅读全文