java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合

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);
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java8新特性

Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str

java 数据结构(十二):Collections工具类的使用

Collections工具类1.作用:操作Collection和Map的工具类2.常用方法:reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素升序排序sort(List,Comparator)

Ruby中的each collect map inject

说明:each——连续访问集合的所有元素collect—从集合中获得各个元素传递给block,block返回的结果生成新的集合。map——同collect。inject——遍历集合中的各个元素,将各个元素累积成返回一个值。arr\1,2,3\1)arr2arr.each{|elem

JAVA常用编程代码块

转Map时要考虑Map的key是否重复List<Entity转为Map<keyField,valueField将一个List实体集合转换为以Entity某一个字段为key,另一字段为value映射的Map/

Java8 新特性之集合操作Stream

Java8新特性之集合操作StreamStream简介Java8引入了全新的StreamAPI。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。