怎么使用Java 8 Stream将List(Object)转成List(Map(String, Object))?

怎么使用Java 8 Stream将List(Object)转成List(Map(String, Object))?问题描述:有一个用户列表List<User>,须将每个User部分字段提取出来,重新放入一个Map中,然后将生成的Map放入List中。原来代码如下:publicstaticList<Map<String,Object>>toListMap(List<User>userList){List<Map<Stri…………

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

问题描述:有一个用户列表List<User>,须将每个User部分字段提取出来,重新放入一个Map中,然后将生成的Map放入List中。

原来代码片段如下:

public static List<Map<String, Object>> toListMap(List<User> userList) {
    List<Map<String, Object>> result = new ArrayList<>();
    Map<String, Object> map;
    for (User user : userList) {
       map = new HashMap<>();
       map.put("username", user.getUsername());
       map.put("age", user.getAge());
       map.put("gender", user.getGender());
       result.add(map);
    }
    return result;
}

使用Java 8 stream后,用map做转换,参考代码片段如下:

方法一:

private Map<String, Object> toMap(User user) {
    Map<String, Object> map = new HashMap<>();
    map.put("username", user.getUsername());
    map.put("age", user.getAge());
    map.put("gender", user.getGender());
    return map;
}

List<Map<String, Object>> data = userList.stream()
                .map(this::toMap)
                .collect(Collectors.toList());

方法二(一步到位)

List<Map<String, Object>> data = userList.stream().map(user -> {
            Map<String, Object> map = new HashMap<>();
            map.put("username", user.getUsername());
            map.put("age", user.getAge());
            map.put("gender", user.getGender());
            return map;
        }).collect(Collectors.toList());

​    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197815.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月27日 下午3:15
下一篇 2025年8月27日 下午3:43


相关推荐

  • php 计算两点地理坐标的距离

    php 计算两点地理坐标的距离

    2021年11月9日
    42
  • 学校计算机网络管理员面试,网络管理员面试题及答案

    学校计算机网络管理员面试,网络管理员面试题及答案1 请写出下列服务使用的默认端口 POP3 SMTP FTPPOP3110SM 20 2 按照数据访问速度排序 硬盘 CPU 光驱 内存 CPU 内存硬盘光驱 3 请写出 568A 与 568B 的线序 568B 橙白橙绿白蓝蓝白绿棕白棕 568A 绿白绿橙白蓝蓝白橙棕白棕 4 网卡 MAC 是由 6 组什么组成的有 16 进制数据组成 前三组表示厂商 有 IEEE 来分配 并

    2026年3月18日
    2
  • 线性代数行列式计算方法之降阶法

    声明与简介线性代数行列式计算之降阶法一般针对于行列是0元素较多的情况,它的核心思想是对某行(列)能方便的进行行列式展开,即某行(列)元素与其代数余子式的乘积,而该行(列)元素为0的较多,对应的代数余子式又比较简单的求出(比如三角形的行列式)。降阶法代数余子式展开计算n阶行列式:过程详解#1思路Step1先观察行列式的特点,再整理思路Step2以第1列为轴,不难发现它对应的代数余子式是个对角形。Step3思路形成,以第1列对应的两个元素a和b分别乘以对应的代数余子.

    2022年4月8日
    200
  • oracle模糊查询方法_oracle模糊查询下划线

    oracle模糊查询方法_oracle模糊查询下划线在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,模糊查询是必不可少的。那么在Oracle中模糊查询是如何实现的呢? 一、我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果;在Where子句中,可以对datetime、char、varchar字段类型的列用Like关键字配合通配符来实现模糊查询,以下是可使用的通配符:(1)%:零或者多个字符,

    2022年4月19日
    221
  • js 后退[通俗易懂]

    js 后退[通俗易懂]&lt;buttonclass="float"type="button"onclick="window.location.href=’__MODULE__/Payment/seller’;"style="margin-left:2%;"&gt;返&amp;nbsp;&amp;nbsp;回&lt;/button&gt;&lt;buttontype=&q

    2022年7月25日
    10
  • OHEM网络

    OHEM网络该网络就是解决fastr-cnn、sppnet等网络在训练过程中,训练样本不均衡的问题。比如可能前景少,背景多。网络结构这个网络相比于fastr-cnn就增加了红色的部分,同时绿色部分最终计算出来的loss不再是用于反向传播,而是寻找hardnegative,下边红色区域计算出来的loss用于反向传播。注意下边红色区域计算loss是利用在绿色区域寻找的hardnegative进行计算的。…

    2022年5月24日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号