1 import com.yang.test.User;
2
3 import javax.jws.soap.SOAPBinding;
4 import java.util.*;
5 import java.util.function.Function;
6 import java.util.stream.Collectors;
7
8 public class Main {
9
10 public static void main(String[] args) {
11
12 List<User> userlist = new ArrayList<>();
13 for (int i = 0; i <10; i++) {
14
15 userlist.add(new User("张三"+i,i));
16 }
17 System.out.println(getAllages(userlist).size());
18
19 System.out.println(getUser2Map(userlist));
20
21 System.out.println(getUser2MapUser(userlist));
22
23 System.out.println(getUser2MapUser2(userlist));
24
25 System.out.println(getUser2MapUser3(userlist));
26
27 }
28
29 public static List<Integer> getAllages(List<User>userlist){
30 return userlist.stream().map(user -> user.getAge()).collect(Collectors.toList());
31 }
32
33 public static Map<Integer,String> getUser2Map(List<User>userlist){
34
35 return userlist.stream().collect(Collectors.toMap(User::getAge,User::getName));
36 }
37
38 public static Map<Integer,User> getUser2MapUser(List<User>userlist){
39
40 return userlist.stream().collect(Collectors.toMap(User::getAge,User-> User));
41 }
42
43 /**
44 * 比较优雅的写法是这样的
45 * @param userlist
46 * @return
47 */
48 public static Map<Integer,User> getUser2MapUser2(List<User>userlist){
49
50 return userlist.stream().collect(Collectors.toMap(User::getAge, Function.identity()));
51 }
52
53 /**
54 * 重复key的情况下 简单的使用后者覆盖前者的
55 */
56 public static Map<Integer,User> getUser2MapUser3(List<User>userlist){
57
58 return userlist.stream().collect(Collectors.toMap(User::getAge, Function.identity(),(key1,key2)->key2));
59 }
60
61 /**
62 *指定map的具体实现
63 * @param userlist
64 * @return
65 */
66 public static Map<Integer,User> getUser2MapUser4(List<User>userlist){
67
68 return userlist.stream().collect(Collectors.toMap(User::getAge, Function.identity(),(key1,key2)->key2, LinkedHashMap::new));
69 }
70 }

用Java8把List转为Map的更多相关文章

  1. Java8将List转为Map

    1.实体 public class Hosting { private int id; private String name; private long websites; public Hosti ...

  2. Java 8中Collection转为Map的方法

    Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解. Method Return Type g ...

  3. 【转】Java8中list转map方法总结

    https://blog.csdn.net/zlj1217/article/details/81611834 背景在最近的工作开发之中,慢慢习惯了很多Java8中的Stream的用法,很方便而且也可以 ...

  4. javabean实体类对象转为Map类型对象的方法(转发)

    //将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...

  5. java8--List转为Map、分组、过滤、求和等操作----代码示例

    Java 8 函数式编程风格 Java 迄今为止最令人激动的特征.这些新的语言特征允许采用函数式风格来进行编码,我们可以用这些特性完成许多有趣的功能.这些特性如此有趣以至于被认为是不合理的.他们说会影 ...

  6. json数据转为Map集合

    我是利用Gson来弄得Gson gson = new Gson();//显得出HashMap的类型Type type = new TypeToken<HashMap<String, Str ...

  7. JAVA中将对象转为Map类型

    之前讲过将Map转为JAVA对象的文章,那么问题来了,如果要把JAVA对象转为Map,又该怎么操作呢?这里亲测了2个方法可行,但目前这2个方法都是基于简单JAVA Bean的情况(即Bean中不能嵌套 ...

  8. java中list强转为map类型

    起因:读取数据库文件的测试用例,测试用例需要存放到一个map中,方便下次调用, 读取的内容返回的内容存放在一个list中,并且数据内容是key=value的形式,最开始使用切片方式,做了很多无用功,后 ...

  9. XML字符串转为Map集合

    public class xmlToMapUtils { /** * xml字符串转为map集合 * @param xmlStr * @return */ public static Map<S ...

随机推荐

  1. Hive——基本DML语句

    Hive--基本DML语句 DML:Data Manipulation Language(数据操作语言,与关系型数据库相似) 官方手册:https://cwiki.apache.org/conflue ...

  2. IO编程之NIO

    从jdk1.4开始,java提供了一系列改进的输入/输出处理的新功能,这些功能被统称为新IO(New IO,简称NIO),这些类都被放在java.nio包以及子包中,并且对原java.io包中的很多类 ...

  3. golang拾遗:内置函数len的小知识

    len是很常用的内置函数,可以测量字符串.slice.array.channel以及map的长度/元素个数. 不过你真的了解len吗?也许还有一些你不知道的小知识. 我们来看一道GO101的题目,这题 ...

  4. 新iPhone有望加入指纹解锁,你会买吗?

    苹果新款iPhone即将在9月份正式发布,或命名为iPhone 13或者iPhone 12s.据外媒报道,新一代iPhone的屏幕和相机都将迎来重大升级,同时还将首次加入屏下指纹解锁技术.你期待吗? ...

  5. React优化

    这里主要分析在函数式react中的优化,类组件有生命周期函数定义较明确 React的核心特征之一是单向数据流(props自上往下流) 这会导致一个问题:当父组件state更新后,其自身及其所有chil ...

  6. 如何移除本地文件夹与Git的连接

    1.在需要移除的文件夹下打开Git Bash 2.在命令行中输入如下语句 find . -name ".git" | xargs rm -Rf

  7. Power Apps 画布应用中非可委派函数查询数量限制

    本文介绍: Power Apps 中的委派函数和非可委派函数. 现象: 在Power Apps中显示某些数据源时,如果数据量超过 500,则可能遇到现实不全的情况,实际上大部分是由于 委派函数 和 非 ...

  8. IOS真机调试找不到设备:ERROR: Could not connect to lockdownd, error code -[x]

    报错信息: Could not connect to lockdownd, error code -3 解决方法:修改var/db/lockdown文件夹的读写权限 在终端找到文件夹cd var/db ...

  9. [剑指 Offer 28. 对称的二叉树]

    剑指 Offer 28. 对称的二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / ...

  10. MySQL的函数使用

    目录 COUNT()函数基本使用 SUM( )函数基本使用 AVG()函数基本使用 MAX()函数基本使用 MIN()函数基本使用 字符函数 concat()和concat_ws() LEFT()与R ...