需求 :

  Mybatis的<select>返回一个List,想按照实体类其中的属性转换成Map<String, String>
实现过程:
  其实有很多方式,可以使用普通for循环,循环取属性put进Map中,由于Jdk8以后,有了Stream流的方式,函数式出现,简化了代码,其实我也不太懂,我倒是有本Java8函数式编程,想要的留个言我发给你。这里我用的是Jdk8的函数式编程进行转化的,具体过程如下

 // 返回权重Map [12A,20]
List<EvalMeasureWeight> measureWeightList = comprehensiveAnalysisMapper.measureWeight(systemId); Map<String, String> collect = measureWeightList.stream().collect(Collectors.toMap(EvalMeasureWeight::getMeasureId,
EvalMeasureWeight::getWeight));

坑点注意:
  可能这个一百度一堆,但是我们要注意的是,每个人的需求不一样,所以写法只是参考,不能说达到一致性的复用,复制不是也得改东西,你说呢?

这里要提到。具体你想怎么用那是你的选择

import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; /**
* @program: cloud-eurka-server7001
* @description:
* @author: Wangly
* @create: 2021-04-21 09:03
*/
public class TestLambda
{ void practice()
{
List<Pserson> list = new ArrayList<>();
TestLambda.Pserson person1 = new Pserson();
TestLambda.Pserson person2 = new Pserson();
TestLambda.Pserson person3 = new Pserson();
person1.setAge(12);
person1.setName("Nipples");
person2.setAge(16);
person2.setName("feet");
person3.setAge(17);
person3.setName("handjob");
person3.setAge(17);
person3.setName("handjobs"); list.add(person1);
list.add(person2);
list.add(person3); //1. 这里是按照Person年龄 % 2 == 0 做过滤条件 防止出现重复
// /**
// * List -> Map
// * 注意:
// * toMap 如果集合对象有重复的key,会报Duplicate key 的错误
// * apple1,apple12的id都为1。
// * 可以用 (p1,p2)->p1 来设置,如果有重复的key,则保留key1,舍弃key2
// */
// 这里给的是一个过滤条件 这里进行转Map的操作
list.stream().filter(l ->l.getAge() % 2 == 0).collect(Collectors.toMap(Pserson::getAge, Pserson::getName,
(p1,p2) ->p2));
//2. 这里其实已经完成了,如果要按某种条件分组 相同条件的元素放在一起,就按下面操作
Map<Integer, List<Pserson>> collect = list.stream().collect(Collectors.groupingBy(Pserson::getAge));
//3.再续
}
@Data
class Pserson
{
private String name;
private int age; }
}

List按需转换Map的更多相关文章

  1. JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类

    <pre name="code" class="java"></pre><pre name="code" cl ...

  2. Guava实现 过滤文本,排序,转换内容,分组计数转换map 等等

    重要点 :看注释 从access.log中统计数据 对healthcheck.html的请求不计入统计 输出请求总量,以及GET和POST分别的总量 输出请求最频繁的10个接口及其次数,按次数降序 输 ...

  3. 【Android】RxJava的使用(三)转换——map、flatMap

    前两篇Android RxJava的使用(一)基本用法.Android RxJava的使用(二)Action介绍了RxJava的基本用法,对Rxjava还不了解的请先看以上两篇.这篇为大家讲解RxJa ...

  4. List转换Map的三种方式

    1.for循环 ... 2.使用guava Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, ...

  5. 进制转换 map

    a_z = [i for i in map(chr, range(ord('a'), ord('z') + 1))]'''Address of var1 variable: 240ff24Addres ...

  6. java将数据从List转换Map

    一.多对多 -> 一对多 二.代码实现 /** * 1个国家下所有城市,一对多关系 * 组装成Map结构返回 **/ public Map<String,List<JSONObjec ...

  7. poj 2752 Seek the Name, Seek the Fame(KMP需转换下思想)

    Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10204   Ac ...

  8. Unity3D:Text在Inspector面板中中无法显示,需转换成UTF-8格式

    环境:Win10 读取text内容后unity报错:Input string was not in the correct format 同时在Inspector面板中无法预览Text文本内容 随后发 ...

  9. java实现字符串和LIST,MAP转换

    需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...

  10. Map和JSON的互相转换

    JSON-Lib方式 /**   * 函数注释:parseJSON2Map()<br>   * 用途:该方法用于json数据转换为<Map<String, Object> ...

随机推荐

  1. java elasticsearch-rest-high-level-client 根据歌名搜索,创建索引,根据索引ID搜索

    1.pom 导入jar <dependency> <groupId>org.elasticsearch.client</groupId> <artifactI ...

  2. 各种语言的OEP大全

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 各种语言的OEP大全 日期:2017-5-19 阿珏 教程 ...

  3. 基于 WEB 的 WMS 3D 可视化管理系统

    基于 WEB 的 WMS 3D 可视化管理系统 前言 首先介绍一下什么是WMS.WMS是仓库管理系统(Warehouse Management System) 的缩写,仓库管理系统是通过入库业务.出库 ...

  4. C# SM2算法 加密,解密,签名,验签

    最近时间在整SM2算法,在网上看到不少代码,基本都是使用BouncyCastle库,现在这个版本算比较好的拿来分享给大家. 首先引入包 Portable.BouncyCastle 完整代码见Gitee ...

  5. CLR via C# 笔记 -- 字符、字符串、文本处理(14)

    1. 字符串一经创建,便不能以任何方式修改,只能修改引用. 2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式.性能 ...

  6. 嵌入式知识分享——GDB程序调试方法说明

    前  言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu 18.04.4 64bit 虚拟机:VM ...

  7. Coding:小写一个debugfs

    Coding:小写一个debugfs ​ 上一次整活还是在上一个月,写了一个简单的module并且熟悉了module的挂载查看和卸载.这一次我们自然玩一个大的,就是利用linux的debugfs AP ...

  8. ubuntu16.04 安装 eclips c/c++

    前言 最近需要在ubuntu16上使用eclips编译c,尝试了apt安装和官网最新包安装甚至应用商店安装,效果都不太理想,现在把我的安装方法记录一下. 正文 !!!前提,已经自己配置好了java8的 ...

  9. SpirngBoot整合MybatisPlus 附源码

    项目搭建 目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...

  10. CF372C

    思路 根据题意可以得到dp转移方程是 \(f_{i,j}=\max\{f_{i-1,k}+b_i-|a_i-j|\}\) 而且 \(j-(t_{i}-t_{i-1})\times d\le k\le ...