如果想要自定义Map的key值,可以使用Collectors.toMap方法的重载版本,提供自定义的key生成函数。以下是一个示例代码: Map<String,Student>studentMap=studentList.stream().collect(Collectors.toMap(student->"student_"+student.getId(),student->student)); 1. 2. 上面的代码中,我们使用了Lambda表达式来自定义Map的...
//案例1:收集Account的id作为key,username作为value,形成一个MappublicMap<Long, String> getIdNameMap(List<Account>accounts) {returnaccounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername)); }//案例2:收集Account的id作为key,对应的List元素作为作为valuepublicMap<Long, Account> ge...
Map<Integer,User> userMap3 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity())); 4、指定key-value,value是对象本身,Function.identity()是简洁写法,也是返回对象本身,key 冲突的解决办法,这里选择第二个key覆盖第一个key。 Map<Integer,User> userMap4 = userList.stream().c...
personList.stream(): 将列表转换为流。 Collectors.toMap(): 将流收集为Map。 Person::getName: 指定Map的键从Person对象的名字获取。 Person::getAge: 指定Map的值从Person对象的年龄获取。 4. 自定义Map的键(key)及值(value) 在上面的代码中,我们已经自定义了Map的键为name,值为age。如果你想进一步自定...
java8-list转Map 在获取数据需要查询多个表的时候,得到多个list集合来存储值。但是在取list集合几面的值的时候,是不能把list都嵌套的。 那么就可以尝试这种方法,将list转成map,然后将表数据之间共同的那个字段作为Map的key。循环中根据key来取值 Map<key类型,值类型> logMap = List.stream().collect(Collectors....
现在有一个List,我们想将其转换为Map,其中key为name,value为age: import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Person> personList = List.of( new Person("Alice", 25), new Person("Bob",...
1、重复key的情况。 在list转为map时,作为key的值有可能重复,这时候流的处理会抛出个异常:Java.lang.IllegalStateException:Duplicate key。这时候就要在toMap方法中指定当key冲突时key的选择。(这里是选择第二个key覆盖第一个key) public Map<String, Account> getNameAccountMap(List<Account> accounts) { return...
工具/原料 Idea Jdk8 方法/步骤 1 演示代码使用Idea开发工具,创建实例工程和实例类UserInfo,jdk选择java8版本,下图为演示实体类。 2 情形一:List转Map。List的元素为对象,Map的key为对象的某个属性,Map的value为整个对象。在此我们把userName作为Map的key,使用lambda表达式:3 在开发时,java8除了以上的写法...
2、List转Map id为key,apple对象为value,可以这么做: /** * List -> Map * 需要注意的是: * toMap 如果集合对象有重复的key,会报错Duplicate key ... * apple1,apple12的id都为1。 * 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 *...
在java8之后我们list转map再也不用循环put到map了,我们用lambda表达式,使用stream可以一行代码解决,下面我来简单介绍list转map的几种方式,和转为map后对map进行分组、求和、过滤等操作。 正文 数据准备 我们准备一个ArrayList,故意让age有一对重复值 代码语言:javascript ...