List按需转换Map
需求 :
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的更多相关文章
- JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类
<pre name="code" class="java"></pre><pre name="code" cl ...
- Guava实现 过滤文本,排序,转换内容,分组计数转换map 等等
重要点 :看注释 从access.log中统计数据 对healthcheck.html的请求不计入统计 输出请求总量,以及GET和POST分别的总量 输出请求最频繁的10个接口及其次数,按次数降序 输 ...
- 【Android】RxJava的使用(三)转换——map、flatMap
前两篇Android RxJava的使用(一)基本用法.Android RxJava的使用(二)Action介绍了RxJava的基本用法,对Rxjava还不了解的请先看以上两篇.这篇为大家讲解RxJa ...
- List转换Map的三种方式
1.for循环 ... 2.使用guava Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, ...
- 进制转换 map
a_z = [i for i in map(chr, range(ord('a'), ord('z') + 1))]'''Address of var1 variable: 240ff24Addres ...
- java将数据从List转换Map
一.多对多 -> 一对多 二.代码实现 /** * 1个国家下所有城市,一对多关系 * 组装成Map结构返回 **/ public Map<String,List<JSONObjec ...
- 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 ...
- Unity3D:Text在Inspector面板中中无法显示,需转换成UTF-8格式
环境:Win10 读取text内容后unity报错:Input string was not in the correct format 同时在Inspector面板中无法预览Text文本内容 随后发 ...
- java实现字符串和LIST,MAP转换
需要下载第三方的jar :net.sf.json import java.io.BufferedReader; import java.io.InputStream; import java.io.I ...
- Map和JSON的互相转换
JSON-Lib方式 /** * 函数注释:parseJSON2Map()<br> * 用途:该方法用于json数据转换为<Map<String, Object> ...
随机推荐
- WebUI自动化测试-监听元素有无变化
from datetime import datetime,timedelta from selenium.webdriver.common.by import By def get_inocSum( ...
- Java面试知识点(二)super 和 this 关键字
this this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this 的用法在 java 中大体可以分为 3 种: 普通的直接引用 这种就不用讲了,this 相当于是指向 ...
- package-lock.json 文件
今天有同事找到我说,本地js 编译不过,编译不过的代码如下 const host = window?.location?.host || 'localhost'; 是option chaining, ...
- 解决BitBucket仓库较大拉取失败,使用SSH拉取
HTTPS 拉取 如果使用的是https拉取,可使用以下命令尝试,如果还是失败,可使用 ssh 拉取 git clone --depth=1 xxxx.git --depth=1:拉取最近1次提交记录 ...
- 韦东山freeRTOS系列教程之【第十章】软件定时器(software timer)
目录 系列教程总目录 概述 10.1 软件定时器的特性 10.2 软件定时器的上下文 10.2.1 守护任务 10.2.2 守护任务的调度 10.2.3 回调函数 10.3 软件定时器的函数 10.3 ...
- 树莓派4B-GPIO控制步进电机
树莓派4B-GPIO控制步进电机 硬件需求: 步进电机 树莓派 杜邦线 L298N驱动模块 选择步进电机 首先需要确认步进电机,因为步进电机可分为单极性和双极步进电动机两种,这两种电机的驱动方式是不同 ...
- python使用flask框架生成excle返回前端(包含图片、表格、表头灰色、表格加边框)
python使用flask框架生成excle文档,文档中包含图片和表格,其中表格要包含图片.表格.表头灰色.表格加边框,照片和表格不重叠. 逻辑:获得图片的高度,根据高度计算表格从第几行开始插入. 效 ...
- 启动数据分析软件SPSS17遭遇的两弹窗解决方案
问题描述 朋友请我帮她安装 SPSS17 这款软件,我寻思这是啥软件,谷歌一下,发现是一个数据分析工具. 在一系列的下一步.确定后,打开时,第 1 个惊喜弹窗来了: [弹窗内容]应用程序无法启动,因为 ...
- 网易传媒基于 Arctic 的低成本准实时计算实践
网易传媒大数据实际业务中,存在着大量的准实时计算需求场景,业务方对于数据的实效性要求一般是分钟级:这种场景下,用传统的离线数仓方案不能满足用户在实效性方面的要求,而使用全链路的实时计算方案又会带来较高 ...
- Nuxt 使用指南:掌握 useNuxtApp 和运行时上下文
title: Nuxt 使用指南:掌握 useNuxtApp 和运行时上下文 date: 2024/7/21 updated: 2024/7/21 author: cmdragon excerpt: ...