用Java8把List转为Map
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的更多相关文章
- Java8将List转为Map
1.实体 public class Hosting { private int id; private String name; private long websites; public Hosti ...
- Java 8中Collection转为Map的方法
Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解. Method Return Type g ...
- 【转】Java8中list转map方法总结
https://blog.csdn.net/zlj1217/article/details/81611834 背景在最近的工作开发之中,慢慢习惯了很多Java8中的Stream的用法,很方便而且也可以 ...
- javabean实体类对象转为Map类型对象的方法(转发)
//将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...
- java8--List转为Map、分组、过滤、求和等操作----代码示例
Java 8 函数式编程风格 Java 迄今为止最令人激动的特征.这些新的语言特征允许采用函数式风格来进行编码,我们可以用这些特性完成许多有趣的功能.这些特性如此有趣以至于被认为是不合理的.他们说会影 ...
- json数据转为Map集合
我是利用Gson来弄得Gson gson = new Gson();//显得出HashMap的类型Type type = new TypeToken<HashMap<String, Str ...
- JAVA中将对象转为Map类型
之前讲过将Map转为JAVA对象的文章,那么问题来了,如果要把JAVA对象转为Map,又该怎么操作呢?这里亲测了2个方法可行,但目前这2个方法都是基于简单JAVA Bean的情况(即Bean中不能嵌套 ...
- java中list强转为map类型
起因:读取数据库文件的测试用例,测试用例需要存放到一个map中,方便下次调用, 读取的内容返回的内容存放在一个list中,并且数据内容是key=value的形式,最开始使用切片方式,做了很多无用功,后 ...
- XML字符串转为Map集合
public class xmlToMapUtils { /** * xml字符串转为map集合 * @param xmlStr * @return */ public static Map<S ...
随机推荐
- 【LeetCode】930. 和相同的二元子数组
930. 和相同的二元子数组 知识点:数组:前缀和: 题目描述 给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组. 子数组 是数组的一段连续 ...
- Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法
本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...
- 【剑指offer】27. 二叉树的镜像
剑指 Offer 27. 二叉树的镜像 知识点:二叉树:递归:栈 题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 示例 输入:root = [4,2,7,1,3,6,9] 输出:[4, ...
- win 10,Maven 配置
来源:https://www.cnblogs.com/lihan829/p/11503497.html 所需工具 : JDK 1.8 Maven 3.6.2 Windows 10 注Maven 3.2 ...
- java实现自动静默打印功能
最近接到一个需求,要求实现自动打印功能,一般网页打印pdf需要借助浏览器的pdf组件,而且还要弹出打印窗口,再点击打印才能实现. 那么如何实现自动打印了,从点击自己网页上3次缩减到点击一次了? 一 ...
- Ubuntu 20.10安装WPS Office、更新Visual Studio Code以及卸载LibreOffice
打造 Ubuntu20.10办公环境,安装WPS Office2019 =================================================== WPS Office20 ...
- Python基础之分离文件名和文件路径
参考链接:https://blog.csdn.net/qq_42110481/article/details/81104182 分离文件名与文件路径: import os if __name__ == ...
- DC-7靶机
仅供个人娱乐 靶机信息 下载地址:http://www.five86.com/downloads/DC-7.zip 一.主机扫描 二.信息收集 或者 python3 cmseek.py --url h ...
- 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds
目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...
- 在Java开发工具的project中使用相对路径
1.在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了.创建文件的写法是: File f = new File("src/com/lavas ...