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

Wesley13
• 阅读 798
//定义一个100元素的集合,包含A-Z
List<String> list = new LinkedList<>();
for (int i =0;i<100;i++){
    list.add(String.valueOf((char)('A'+Math.random()*('Z'-'A'+1))));
}
System.out.println(list);
//统计集合重复元素出现次数,并且去重返回hashmap
Map<String, Long> map = list.stream().
    collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
System.out.println(map);
//由于hashmap无序,所以在排序放入LinkedHashMap里(key升序)
Map<String, Long> sortMap = new LinkedHashMap<>();
map.entrySet().stream().sorted(Map.Entry.comparingByKey()).
    forEachOrdered(e -> sortMap.put(e.getKey(), e.getValue()));
System.out.println(sortMap);
//获取排序后map的key集合
List<String> keys = new LinkedList<>();
sortMap.entrySet().stream().forEachOrdered(e -> keys.add(e.getKey()));
System.out.println(keys);
//获取排序后map的value集合
List<Long> values = new LinkedList<>();
sortMap.entrySet().stream().forEachOrdered(e -> values.add(e.getValue()));
System.out.println(values);
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java 数据结构(十二):Collections工具类的使用
Collections工具类1.作用:操作Collection和Map的工具类2.常用方法:reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素升序排序sort(List,Comparator)
Wesley13 Wesley13
2年前
java8新特性
Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str
Wesley13 Wesley13
2年前
javaAPI_集合基础_List
List集合1.list集合以及其特点list集合是有序的,且可重复的。有序是指:存储的是什么那么遍历出来的也就是什么。2.list集合特有的功能(1).添加功能voidadd(intindex,objectelement):在指定位置添加元素(2).获取功能Objectget(intind
Stella981 Stella981
2年前
Ruby中的each collect map inject
说明:each——连续访问集合的所有元素collect—从集合中获得各个元素传递给block,block返回的结果生成新的集合。map——同collect。inject——遍历集合中的各个元素,将各个元素累积成返回一个值。arr\1,2,3\1)arr2arr.each{|elem
Wesley13 Wesley13
2年前
JAVA常用编程代码块
转Map时要考虑Map的key是否重复List<Entity转为Map<keyField,valueField将一个List实体集合转换为以Entity某一个字段为key,另一字段为value映射的Map/
Wesley13 Wesley13
2年前
Java8 新特性之集合操作Stream
Java8新特性之集合操作StreamStream简介Java8引入了全新的StreamAPI。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。
Stella981 Stella981
2年前
Key
KeyValue是用一个不可重复的key集合对应可重复的value集合。(典型的例子是字典:通过页码的key值找字的value值)。例子:key1—value1;key2—value2;key3—value3.SortedMap:如果一个Map可以根据key值排序,则称其为SortedMap。(如字典)!!注意数组和集合的区别:数组
Wesley13 Wesley13
2年前
Java中的Map集合
Map接口简介Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value,键和值对象之间存在一种对应关系,称为映射。从Map集合中访问元素时,只要指定了Key,就能找到对应的Value,Map中的键必须是唯一的,不能重复,如果存储了相同的键,后存储的值会覆盖原有的值,简而言之就是键相同,值覆盖。Map常用
Wesley13 Wesley13
2年前
.prop()和 .attr()区别(转)
.prop()1、.prop(propertyName)获取匹配集合中第一个元素的Property的值2、.prop(propertyName,value).prop(map).prop(propertyName,function(index,oldPropertyValue))给匹配元素集合设定一个或多个属
Wesley13 Wesley13
2年前
Java方面技术点小整理
Java中的集合吗?java中的集合分为value、keyvalueg两种存储值有分为list和setList有序的,可以重复Set是序的,不可以重复的根据equals和hashCode判断如果一个对象要存储在set中,必须重写equals和hashCode的方法;存储keyvalue的为map