String str = "张三,李四,李四,王五,张三,李四";怎么用stream流统计每个人的名字出现的次数
时间: 2024-09-27 20:17:24 浏览: 38
js代码-重复的数据添加标识 例如张三 李四 王五 张三 王五 变更为 张三1 李四 王五1 张三2 王五2
在Java中,你可以使用`String`数组或列表,并结合`Stream` API 和 `Collectors.groupingBy`以及`Collectors.counting`来统计名字出现的次数。这里是一个例子:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String namesStr = "张三,李四,李四,王五,张三,李四";
List<String> names = Arrays.asList(namesStr.split(","));
Map<String, Long> nameCountMap = names.stream()
.collect(Collectors.groupingBy(name -> name, Collectors.counting()));
// 输出每个名字及其出现次数
for (Map.Entry<String, Long> entry : nameCountMap.entrySet()) {
System.out.println("名字:" + entry.getKey() + ", 出现次数:" + entry.getValue());
}
}
}
```
在这个代码里,首先将字符串按照逗号分割成`List<String>`,然后通过`stream()`创建一个流,`groupingBy`函数根据名字对元素进行分组,并计算每个组的数量。最后遍历`nameCountMap`,打印出每个名字及其出现次数。
阅读全文