在Java 8中实现按组计数的功能

bluesky1年前 ⋅ 128 阅读

ChatGPT的回答仅作参考:

在Java 8中,可以使用流(Stream)和收集器(Collector)来实现按组计数的功能。具体实现步骤如下:

1. 准备数据集合,例如一个包含多个字符串的列表。

List<String> list = Arrays.asList("apple", "banana", "orange", "apple", "orange");

2. 使用流将数据集合转换为一个包含键值对的流,其中键为字符串,值为出现次数。

Map<String, Long> map = list.stream()
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

3. 输出结果。

System.out.println(map);

输出结果为:

{orange=2, banana=1, apple=2}

其中,orange出现了2次,banana出现了1次,apple出现了2次。

完整代码如下:

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class GroupCountDemo {

    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "orange", "apple", "orange");
        Map<String, Long> map = list.stream()
                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
        System.out.println(map);
    }

}

全部评论: 0

    相关推荐