使用Java 8的新特性可以使用流(Stream)和Lambda

2023-09-18  本文已影响0人  爱学习的蹭蹭

使用Java 8的新特性可以使用流(Stream)和Lambda表达式来编写一个List中多个重复字符串的统计代码。下面是一个示例代码:

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

public class Main {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<>();
        strings.add("111-aa");
        strings.add("111-aa");
        strings.add("22-bb");
        strings.add("333-cc");
        strings.add("111-dd");
        strings.add("444-ee");
        
        Map<String, Long> countMap = strings.stream()
                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
        
        countMap.forEach((str, count) -> System.out.println(str + ": " + count));
    }
}

这个示例代码将统计List中每个字符串出现的次数,并输出结果。输出结果将以字符串为键,出现次数为值进行展示。在输出结果中,重复的字符串会被统计为多次出现。

输出结果:

111-aa: 2
22-bb: 1
333-cc: 1
111-dd: 1
444-ee: 1

这段代码使用strings.stream()将List转换成流,然后使用Collectors.groupingBy(Function.identity(), Collectors.counting())对每个字符串进行分组,并计算每个分组中的元素个数。最后,使用forEach方法遍历并输出结果。

此列子是学习简单的例子。。。

上一篇 下一篇

猜你喜欢

热点阅读