使用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
方法遍历并输出结果。
此列子是学习简单的例子。。。