好几天没有更新文章,一方面是因为工作原因,另一方面是因为小编偷偷的在准备面试,由于准备不足,在昨日被无情的......淘汰了! 怪自己才疏学浅,其中有一道笔试题,是用Java8将List转Map,那么接下来我总结了List转Map的三种方法。 第一种方法可能是大家常用的一种方法通过for循环将每个元素填充到map里面,简例如下:
ArrayList<User> list=new ArrayList<>();
Map maps=new HashMap();
list.add(new User("1","张三"));
list.add(new User("2","李四"));
list.add(new User("3","王五"));
for (User users:list){
maps.put(users.getUserId(),users.getUserName());
}
System.out.println(maps);
第二种是使用Google提供的guava工具库
Map<String,User> map = Maps.uniqueIndex( list, user -> user.getUserId());
System.out.println(map);
第三种是Java8的stream方法,是最简便的一种方法,也提供了函数有效的解决了Key冲突
System.out.println(list.stream().collect(Collectors.toMap(User::getUserId,User::getUserName,(k1,k2)->k2)));