Java8 stream流的操作 map和list转换

2023-11-10

                             Java8 stream流的操作

1. 将map的所有value转换成list

  //创建map并塞两个值
    Map<String, String> userObjHashMap = new HashMap<>();
    userObjHashMap.put("user1","hello");
    userObjHashMap.put("user2","尛");
    //将map的所有value放入到list集合中
    List<String> resultDataList =    userObjHashMap.values().stream().collect(Collectors.toList());
    System.out.println(resultDataList);

执行结果:
在这里插入图片描述

2. 将对象list根据某一字段转换为map类型 格式:map<Integer,object>

//将list转换为map (key:tid,value:TestA对象) 注意:如果key一样的话会报错,所以尽量使用唯一的字段当作key

//第一种方式
Map<Integer, TestA> testMap = testAList.stream().collect(Collectors.toMap(TestA::getTid, x -> x));

//第二种方式
Map<Integer, TestA> testMap2 = testAList.stream().collect(Collectors.toMap(TestA::getTid, Function.identity()));

测试代码:根据tid作为key,TestA对象为value(tid:TestA),map<Integer,TestA>

public static void main(String[] args) {
   
    //创建testA对象并赋值
    TestA test1 = new TestA();
    test1.setTid(1);
    test1.setTname("小明");
    //创建testA对象并赋值
    TestA test2 = new TestA();
    test2.setTid(2);
    test2.setTname("小红");

    //testA的集合
    List<TestA> testAList = new ArrayList<>();
    testAList.add(test1);
    testAList.add(test2);

    //将list转换为map (key:tid,value:TestA对象)
    Map<Integer, TestA> testMap = testAList.stream().collect(Collectors.toMap(TestA::getTid, x -> x));
    System.out.println("第一种方法: " + testMap);

    Map<Integer, TestA> testMap2 = testAList.stream().collect(Collectors.toMap(TestA::getTid, Function.identity()));
    System.out.println("第二种方法: " +testMap2);

}

测试结果:
在这里插入图片描述

3. 将对象list根据某两个字段转换为map类型 格式:map<Integer,String>

//将list转换为map (key:tid,value:tname) 注意:如果key一样的话会报错,所以尽量使用唯一的字段当作key

//第一种方法
Map<Integer, String> testMap <
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8 stream流的操作 map和list转换 的相关文章

随机推荐

  • vue+条形码

    前言 在vue中生成条形码的插件 vue barcode 官方文档 vue barcode是JsBarcode的一个简单包装 所以在使用时的配置属性需要在JsBarcode中查看JsBarcode官方文档 展示效果 使用步骤 步骤一 安装
  • 05-思维导图Xmind快速入门

    文章目录 5 1 认识思维导图 5 2 Xmind的主要结构及主题元素 5 2 1 Xmind的多种结构 5 2 2 主题分类 5 2 3 Xmind的主题元素 章节总结 5 1 认识思维导图 什么是思维导图 思维导图是一种将思维进行可视化
  • Blender2.92下载安装教程

    Blender2 92下载安装教程 1 下载Blender 2 安装Blender 1 下载Blender 直达链接 Blender官网链接 手动复制 https www blender org 两种方式可自选 进入官网点击这里 可根据自己
  • 【医学图像处理】用于肝血管分割的平均教师辅助置信学习

    标题 Noisy Labels are Treasure Mean Teacher Assisted Confident Learning for Hepatic Vessel Segmentation 作者 Donghuan Lu 腾讯天
  • django配置随时执行的脚本,使用运行时的manage环境执行程序

    有时候需要在启动django后执行一些数据的实时采集或更新操作 这篇博客记录脚本的配置与运行 安装依赖 首先安装依赖 pip install django extensions 然后在setting的INSTALLED APPS配置中添加d
  • OpenCV图像处理——轮廓检测

    目录 图像的轮廓 查找轮廓 绘制轮廓 轮廓的特征 轮廓面积 轮廓周长 轮廓近似 凸包 边界矩形 最小外接圆 椭圆拟合 直线拟合 图像的矩特征 矩的概念 图像中的矩特征 图像的轮廓 查找轮廓 binary contours hierarchy
  • 手机串口终端

    手机串口终端 做嵌入式开发的小伙伴永远离不开串口 想想一下 假设你需要进行现场调试 但是身边没有电脑 或者其他特殊环境不方便用电脑 或者就是单纯的懒得用电脑 该怎么办 这就是我碰到的场景 而且不止一次 说多了都是泪 别问 这种情况你就只能把
  • 多线程小记

    创建线程的几种方法 C 多线程之 beginthread https blog csdn net u013043408 article details 83830181 C 多线程之CreateThread https blog csdn
  • ping: www.baidu.com: Temporary failure in name resolution

    虚拟机突然访问不了百度了 查看发现网络都是好的 root zk02 ping www baidu com ping www baidu com Temporary failure in name resolution 经查修改下如下配置文件
  • 统计软件与数据分析Lesson9----爬虫解析库Beautiful Soup

    统计软件与数据分析Lesson9 爬虫解析库Beautiful Soup知识点总结 1 requests 模块 1 1 查看requests功能函数 1 2 发送请求 1 3 传递URL参数 1 4 获取响应内容 2 Beautiful S
  • Chrome NET::ERR_CERT_AUTHORITY_INVALID 错误分析及处理

    Chrome NET ERR CERT AUTHORITY INVALID 错误分析及处理 1 问题描述 今天用Apache搭建好PC端服务器后 用Chrome测试 打开http localhost 时出现了如下的错误 错误代码 NET E
  • js实现前端分页页码管理

    用JS实现前端分页页码管理 可以很美观的区分页码显示 这也是参考大多数网站的分页页码展示 能够有很好的用户体验 这也是有业务需要就写了一下 还是新手 经验不足 欢迎指出批评 首先先看效果图 这是初始页面 也就是第一页 的界面 如果为第一页时
  • Python怎么合并两个矩阵?Python矩阵合并需要使用什么方法

    python之中的第三方库numpy可以构建出来矩阵这种行列格式且对称的数据结构 而在之前的文章之中小编给大家介绍了矩阵是如何通过添加的方式来扩展行列的 而本次要来给大家分享的就是一个和它相似的内容 矩阵合并的方法以及详细代码示例 一起往下
  • Hive优化

    1 Fetch抓取 目的 让hive sql 能不走MR 尽量不走MR 通过hive的参数来配置 决定哪些sql可以不走MR set hive fetch task conversion 可选值 none minimal more 默认值
  • Java实现PDF导出/预览

    网上有很多关于PDF导出的文章 但是个人感觉实现的过于复杂 又是模板又是html的 有的还需要字体模板的支持 本片文章只是实现简单的PDF表格导出 可以实现PDF动态表格导出 预览 这类文章网上很少 就给你们整理一篇吧 实现思路 本地创建P
  • 自己写的跨数据库的表同步工具

    阅读本文大概需要 3 6 分钟 近期在做数据集市 遇到的痛点如下 1 数据采集过程繁琐 重复的脚本编写太多 从不同的数据库抽取数据 需要为不同的数据库写卸数脚本 再传输到数据集市文件服务器 再入库 每一环节都需要调度 2 不同的数据库写不同
  • Linux安装unrar

    Linux中unrar的安装 下载unrar wget https www rarlab com rar rarlinux x64 6 0 2 tar gz 解压文件 tar xf rarlinux x64 6 0 2 tar gz 安装
  • win10安装protobuf

    Win10安装protobuf 准备 安装VS 下载protobuf 安装cmake 下载gmock 安装 Cmake构建配置 使用VS编译protobuf 准备 安装VS 下载protobuf 下载地址 https github com
  • flutter app启动页的强制获取配置前先检查是否有网络

    判断网络状态 connectivity plus 2 3 9 late StreamSubscription
  • Java8 stream流的操作 map和list转换

    Java8 stream流的操作 1 将map的所有value转换成list 创建map并塞两个值 Map