在业务中时常有对用户传入的数据做校验的情况。比如某种条件下限制某个配置出现的次数,如果超出次数则给用户对应的提示。通常方法是遍历集合放入Map中,遍历Map看value的大小。
例如:
Java 8中如何优雅实现呢?
public static void main(String[] args) {
List<String> stringList = CollectionsUtil.asList("apple", "banana", "apple", "apple", "banana", "orange", "orange", "orange", "orange");
Map<String, Long> stringMap = stringList.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
stringMap.forEach((k, v) -> {
System.out.println("key:" + k + " nums:" + v);
});
}
//输出
key:orange nums:4
key:banana nums:2
key:apple nums:3