用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 ...
随机推荐
- MapReduce学习总结之架构
一.MapReduce1.x架构 1)jobTracker:JT 作业的管理者 将作业分解成一堆任务:Task(MapTask和ReduceTask) 将任务分派给TaskTracker(TT)运行 ...
- python基础之os模块操作
# os模块 目录相关内置库import os# . 当前目录 .. 返回上一级目录# 1. os.path.abspath() --获取当前文件的绝对路径(不包含os模块.py) pwd# path ...
- python -- 面向对象编程(属性、方法)
一.属性 对象的属性(attribute)也叫做数据成员(data member). 如果想指向某个对象的属性,可以使用格式: object.attribute 属性又分为:私有属性和公有属性. 私有 ...
- PAT乙级:1072开学寄语(20分)
PAT乙级:1072开学寄语(20分) 题干 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面 ...
- 第二篇 -- Qt Designer界面介绍
1. Qt Designer创建界面 2. Qt Designer全局
- thinkphp 事物回滚
1 $m=D('YourModel');//或者是M(); 2 $m2=D('YouModel2'); 3 $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 4 ...
- joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞
影响版本: 3.7.0 poc http://192.168.49.2:8080/index.php?option=com_fields&view=fields&layout=moda ...
- 重返MySQL之MySQL基础
重返MySQL之MySQL基础 本章详细介绍了,什么是数据库,常见的关系型数据库有哪些,什么是MySQL,及MySQL中DDL操作表,DML操作表记录. 1.0 数据库概述 1.1 数据存储的方式 目 ...
- kali linux 的ssh服务器拒绝了密码 请再试一次
1.配置kali linux下的SSH,默认情况下kali下的SSH不允许root用户远程登录SSH,需要修改配置文件 /etc/ssh/sshd_config,修改PermitRootLogin y ...
- Mybatis源码解析1—— JDBC
在之前的文章中,我为大家介绍了 Mybatis 的详细用法,算是基础教程. 详细链接:Mybatis 基础教程 言归正传,只懂基础可不行,接下来将给大家带来高阶的源码解析教程,从浅入深,通过源码解析, ...