在Java中,你可以使用Stream API将List转换为Map,其中List中的对象属性可以作为Map的key和value。如果List中的对象有多个属性,并且你希望其中一个属性作为Map的key,而另一个属性的集合(List)作为Map的value,那么可以通过以下步骤实现: 准备数据:首先,创建一个包含对象的List,每个对象至少包含两个属性,一个用作Map的ke...
Map<String,List<String>>map=list.stream().collect(Collectors.toMap(Person::getId,p->{List<String>getNameList=newArrayList<>();getNameList.add(p.getName());returngetNameList;},(List<String>value1,List<String>value2)->{value1.addAll(value2);returnvalue1;}))System.out.println(map); 输出...
2. 使用 Stream API 进行转换 接下来,我们使用 Stream API 来处理这个列表,并将其转换为 Map。在这一过程中,我们将使用Collectors.toMap()。 importjava.util.Map;importjava.util.stream.Collectors;// 继续在 main 方法中Map<Integer,String>studentMap=studentList.stream().collect(Collectors.toMap(Student::g...
转换成TreeMap publicstaticvoidmain(String[] args){//将List转换为Map,解决key冲突的问题TreeMap<String,String> collect = users.stream().//User对象的id属性作为key,但是key相同时,使用旧的value值collect(Collectors.toMap(User::getId, User::getName, (k1, k2) -> k1, TreeMap::new)); System.out...
因为List包含两个tom,转成Map会有两个同样的Key,这个是不允许的。所以会报错: java.lang.IllegalStateException: Duplicate key 3 at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133) at java.util.HashMap.merge(HashMap.java:1254) ...
//List 以ID分组 Map<Integer,List<Apple>> Map<Integer, List<Apple>> groupBy = appleList.stream().collect(Collectors.groupingBy(Apple::getId)); System.err.println("groupBy:"+groupBy); {1=[Apple{id=1, name='苹果1', money=3.25, num=10}, Apple{id=1, name='苹果2', money=1.35, num...
是所对应的小科室对象Map<String, List<Department>> deparmentMap =departmentList.stream().collect(Collectors.groupingBy(Department::getBigcode));System.out.println(deparmentMap);//###//遍历map集合 deparmentMap,遍历每一个大科室:对每一个大科室重新进行封装,包含其下级子科室for(Map.Entry<String,Li...
Map<Integer, List<Payment>> paymentByTypeMap = new HashMap<>();for(Payment payment : payments)...
Stream<Person>personStream=personList.stream(); 1. 步骤3:通过Stream对象将List转换成Map 使用Stream对象的collect方法,结合Collectors.toMap方法,可以将Stream转换成Map。 Map<Integer,String>personMap=personStream.collect(Collectors.toMap(Person::getId,Person::getName)); ...
Map> ans = list.stream().collect(Collectors.groupingBy(String::length)); 2. 通用方法 上面是针对特定的列表,针对业务进行开发转换,那么我们接下来尝试构建一个通用的工具类 这里我们主要借助的知识点就是泛型,一个重要的点就是如何获取Map中的key对于jdk < 1.8的写法,通过接口来定义实现key的获取姿势 ...