需求 :

  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. Rust性能分析之测试及火焰图,附(lru,lfu,arc)测试

    性能测试,在编写代码后,单元测试及性能测试是重要的验收点,好的性能测试可以让我们提前发现程序中存在的问题. 测试用例 在Rust中,测试通常有两部分,一部分是文档测试,一部分是模块测试. 通常我们在函 ...

  2. IT运维全面数字化|芯片设计行业领跑打造运维流程闭环

    在当今数字化转型的浪潮中,科技行业正经历着前所未有的变革.随着5G.人工智能.物联网等新兴技术的快速发展,企业对于高效.智能的运营模式的需求日益迫切. 芯片设计公司作为科技产业链中的关键一环,不仅要在 ...

  3. 图最短路径之BellmanFord

    Bellman–Ford Algorithm 算法参考地址:Bellman–Ford Algorithm | DP-23 - GeeksforGeeks 算法的简介 在图中给定一个图形和一个源顶点 s ...

  4. 配置h5py、netCDF4库的方法:Anaconda环境

      本文介绍基于Anaconda环境,下载并安装Python中h5py与netCDF4这两个模块的方法.   在Python语言中,h5py与netCDF4这两个模块是与遥感图像处理.地学分析等GIS ...

  5. hbase第一课:hbase-2.2.7分布式搭建

    hbase-2.2.7分布式搭建文档 1.上传解压配置环境变量 # 1.解压 tar -xvf hbase-2.2.7-bin.tar.gz.gz # 2.配置环境变量 vim /etc/profil ...

  6. Android Verified Boot介绍与有关使用

    Android Verified Boot介绍与有关使用 背景 在搞安卓驱动调试的时候,由于不熟悉,导致系统没有按照我预期启动完毕:因此需要注意这一块的东西. 简介 Verified Boot 是 A ...

  7. .NET周刊【6月第4期 2024-06-23】

    国内文章 C#.Net筑基-集合知识全解 https://www.cnblogs.com/anding/p/18229596 .Net中提供了数组.列表.字典等多种集合类型,分为泛型和非泛型集合.泛型 ...

  8. Solo 开发者周刊 (第4期):什么样的新科技,能提高生活效率?

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 AI生 ...

  9. [oeasy]python0036_牛说_cowsay_小动物说话_asciiart_figlet_lolcat_管道(祝大家新年快乐~)

    ​ 牛说(cowsay) 回忆上次内容 上次我们研究了shell脚本的编程 并且在shell中实现了 循环语句 延迟命令 清屏命令 python命令 figlet命令 ​ 编辑 还能整点什么呢? 还想 ...

  10. Python 实现Excel和TXT文本格式之间的相互转换

    Excel是一种具有强大的数据处理和图表制作功能的电子表格文件,而TXT则是一种简单通用.易于编辑的纯文本文件.将Excel转换为TXT可以帮助我们将复杂的数据表格以文本的形式保存,方便其他程序读取和 ...