1//定义一个100元素的集合,包含A-Z 2List<String> list = new LinkedList<>(); 3for (int i =0;i<100;i++){ 4 list.add(String.valueOf((char)('A'+Math.random()*('Z'-'A'+1)))); 5} 6System.out.println(list); 7//统计集合重复元素出现次数,并且去重返回hashmap 8Map<String, Long> map = list.stream(). 9 collect(Collectors.groupingBy(Function.identity(),Collectors.counting())); 10System.out.println(map); 11//由于hashmap无序,所以在排序放入LinkedHashMap里(key升序) 12Map<String, Long> sortMap = new LinkedHashMap<>(); 13map.entrySet().stream().sorted(Map.Entry.comparingByKey()). 14 forEachOrdered(e -> sortMap.put(e.getKey(), e.getValue())); 15System.out.println(sortMap); 16//获取排序后map的key集合 17List<String> keys = new LinkedList<>(); 18sortMap.entrySet().stream().forEachOrdered(e -> keys.add(e.getKey())); 19System.out.println(keys); 20//获取排序后map的value集合 21List<Long> values = new LinkedList<>(); 22sortMap.entrySet().stream().forEachOrdered(e -> values.add(e.getValue())); 23System.out.println(values);
java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
Wesley13
2021-10-11
1466 1 0
点赞
收藏
评论区
加载中...