繁体   English   中英

何将Arraylist转换 <Person> 到地图 <String, List<Long> &gt;使用流?

[英]Ho to convert an Arraylist<Person> to Map<String, List<Long>> with Stream?

我有一个人ArrayList

List<Person> personList = getPersonList();

我想创建一个Map<String, List<Long>>的映射

基于Person :: getDepartment的键和基于时间戳List<Long>的值Person::getTimestamp

List<Person> personList有多个Person记录,因此我需要删除Person::getDepartment上的重复Person::getDepartment ,但由于Map不允许键重复项,所以我认为这应该不是问题。

我可以通过forach循环做到这一点,但是我的问题是我可以只使用一条流吗?

public class Person {

    private String department;
    private long timestamp;

    //getters and setters
}

在收集中,使用groupingBy()按部门mapping() Person groupingBy() ,然后使用mapping()Person映射到其时间戳。

Map<String, List<Long>> map = 
personList.stream()
          .collect(groupingBy(
                         Person::getDepartment,
                         mapping(Person::getTimestamp, toList())
                        )
                  );

并添加以下导入:

import static java.util.stream.Collectors.mapping;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.toList;

要不就 :

import static java.util.stream.Collectors.*;

如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]>

[英]How to convert List<String[]> to List<Object> using modelmapper or stream().map()?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何分组 Stream<person> 进入 Stream <list<person> &gt;、不进Map <string, <list<person> &gt;? </string,></list<person></person> 如何转换List <Person> 到地图 <String, List<Double> &gt;而不是地图 <String, List<Person> &gt;? 使用 java 中的 Stream 将列表字符串转换为 ArrayList 浮点数 Java 8:过滤地图 <Long, Person> 列出 <Long> 按人的身份 转换列表<Map<Long, String> &gt; 列出<Long>爪哇 8 将字符串转换为ArrayList <Integer> 与流 努力理解“清单 <String> list = people.stream()。map(Person :: getName).collect(Collectors.toList());” 如何转换清单 <Map<String,Long> 到TreeMap或Map? 转换地图 <String,Map<Long,customeObject> &gt;列出 <customeobject> 使用Java 8 如何转换列表<string[]>列出<object>使用 modelmapper 或 stream().map()?<div id="text_translate"><p> 我有以下数据作为 java 中的 String[] 列表,是否可以使用 stream().map() 进行转换? 这是列表的一个示例。</p><pre> Data's type is List&lt;String[]&gt; data which contains the following structure: ["a","b","c","d"], ["e","f","g","e"], ["e","f","g","e"]</pre><p> 我试图用modelMapper和没有modelMapper的map我的值并且数据是空的:</p><pre> List&lt;Custom&gt; mapInfo = new ArrayList&lt;CustomData&gt;(); mapInfo=data.stream().map(objectModel -&gt; modelMapper.map(objectModel, CustomData.class)).collector(Collectors.toList());</pre><p> 但是,当我尝试使用数据时,数组的每个 object 上的 object 结构都是空的:</p><pre> @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class CustomData(){ @Builder.Default private String valueA=""; @Builder.Default private String valueB=""; @Builder.Default private String valueC=""; @Builder.Default private String valueD=""; }</pre></div></object></string[]>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM