简体   繁体   English

转换收藏流 <String[]> 列出 <String> []

[英]Convert Stream of Collection<String[]> to List<String>[]

I have a piece of code: 我有一段代码:

table.stream().filter(row -> !hash.containsKey(row[keyColumnNumber]))
.map(row -> row[keyColumnNumber]).map(hash::get)

The last step: .map(hash::get) returns Collection<String[]> . 最后一步: .map(hash::get)返回Collection<String[]> and as a result I need to collect all of that to List. 结果,我需要将所有这些收集到List中。

.collect(Collectors.toList())

returns List> what is expected, but 返回List>预期的结果,但是

.flatMap(Stream::of).collect(Collectors.toList()).collect(Collectors.toList())

returns the same result. 返回相同的结果。

You can use flatMap like so : 您可以像这样使用flatMap:

List<String> list = table.stream()
        .map(row -> hash.get(row[keyColumnNumber]))
        .filter(Objects::nonNull)
        .flatMap(Arrays::stream)
        .collect(Collectors.toList());

If 如果

table.stream().filter(row -> !hash.containsKey(row[keyColumnNumber]))
.map(row -> row[keyColumnNumber]).map(hash::get)

returns a Stream<Collection<String[]>> and you require a List<String[]> , you do need flatMap : 返回Stream<Collection<String[]>>并且您需要List<String[]> ,您确实需要flatMap

List<String[]> result = table.stream()
        .filter(row -> !hash.containsKey(row[keyColumnNumber]))
        .map(row -> row[keyColumnNumber])
        .map(hash::get) // Stream<Collection<String[]>>
        .flatMap(Collection::stream) // Stream<String[]>
        .collect(Collectors.toList()); // List<String[]>

It should be possible to join the map and flatMap calls into a single flatMap , as Aomine commented: 正如Aomine所说,应该有可能将mapflatMap调用加入到一个flatMap

List<String[]> result = table.stream()
        .filter(row -> !hash.containsKey(row[keyColumnNumber]))
        .flatMap(row -> hash.get(row[keyColumnNumber]).stream()) // Stream<String[]>
        .collect(Collectors.toList()); // List<String[]>

try this. 尝试这个。 i hope it can solve... 我希望它可以解决...

List<String> list = table.stream().filter(row -> !hash.containsKey(row[keyColumnNumber]))
  .map(row -> row[keyColumnNumber]) 
  .flatMap(x -> Arrays.stream(hash.get()))//<<-----------------
  .collect(Collectors.toList());

如何转换列表<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.

相关问题 转换列表<List<String> &gt; 流<Stream<String> &gt; - Convert List<List<String>> to Stream<Stream<String>> Java 流到可空字符串列表的集合 - Java stream to collection for nullable string list Java Collection:如何转换Collection <List<String> &gt;到ArrayList <List<String> &gt;或列表 <List<String> &gt;? - Java Collection: what to convert Collection<List<String>> to ArrayList<List<String>> or List<List<String>>? 转换清单 <HashMap<String, Object> &gt;串流 - Convert List<HashMap<String, Object>> to stream 使用 java 中的 Stream 将列表字符串转换为 ArrayList 浮点数 - Convert a List String to an ArrayList Float with Stream in java 8 如何筛选清单 <String,Object> 用Java流收集吗? - How to Filter List<String,Object> Collection with java stream? 如何转换“流<string> " 到 "字符串"</string> - How to convert "Stream<String>" to "String" 在Java中将Stream转换为String - Convert Stream to String in Java 如何转换列表<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()? flatMap()转换LinkedList的流 <String> 进入String流 - flatMap() to convert a stream of LinkedList<String> into a stream of String
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM