怎么使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MyBatisCodeHepler 激活码-激活码分享

    (MyBatisCodeHepler 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
  • 解决CSDN富文本编辑器回车换行间距过大

    解决CSDN富文本编辑器回车换行间距过大在CSDN富文本编辑器中直接按回车(Enter)换行后文本间距会很大,解决方法是同时按住Shift+Enter,换行后间距就会很小!如下图所示:原理:Enter产生硬回车,它在换行的同时也起着段落分隔的作用。Shift+Enter产生软回车,它换行,但是并不换段,即前后两段文字在Word中属于同一“段”。…

    2022年5月1日
  • allow_url_fopen与安全以及PHP libcurl

    allow_url_fopen与安全以及PHP libcurl  allow_url_fopen=ON常常会给服务器和管理员带来麻烦,但是经常性(至少我这样认为)的我们需要远程读取某个东西,如果设置allow_url_fopen=OFF将其关闭,我们就没有办法远程读取。  幸好我们有一个很好的PHP模块–curl。下面我就以一个例子说说我用curl远程读取的方法:  第一,allow_url_fopen=ON的情况下:

    2022年7月21日
  • 《圣经》心得——孙继滨

    《圣经》心得——孙继滨

    2021年8月11日
  • oracle 错误01017,ORA-01017:用户名密码出错 故障实例

    oracle 错误01017,ORA-01017:用户名密码出错 故障实例sysdba登录ORA-01017:用户名密码出错故障排查实例早上接到一个朋友的急call,说是数据库的sys登录不了系统叻。普通用户连接可以登录,只要是assysdba就提示ORA-01017:用户名密码出错。很显然这是一个典型的sysdba登录的问题。首先要他查看了sqlnet文件。SQLNET.AUTHENTICATION_SERVICES=(NONE)启动密码文件验证了,接着查看…

    2022年5月31日
  • Java实现 整型转字符串,位数不足时可以自动补0

    Java实现 整型转字符串,位数不足时可以自动补0代码publicclassStringUtil{/***整型转字符串并格式化*@paramminSize最小大小*@paramseparator分隔符*@paramintNums需要转化的整数*@return字符串*/publicstaticStringformatInt(intminSize,Stringseparator,int…intNums){

    2022年10月18日

发表回复

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

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