簡體   English   中英

使用Java 8流對象將列表對象轉換為自定義Map

[英]Converting list object into custom Map using Java 8 stream object

我有一個類“First”,它包含對Class“Second”的引用作為列表。 我試圖通過使用Stream(或)flap Map(或)groupingBy以Java 8方式實現下面的塊

foreach(First a: listOfFirst){
    for (Second b: a.getSecondDetails()) {
        inputMap.put(b, a);
    }
}

我試過以下簡化方式

listOfFirst.stream()
    .flatMap(p -> p.getSecondDetails().stream())
    .collect(Collectors.toMap(p -> p, q -> q));

我在這里遺漏了一些東西,請幫幫我

您需要“記住”與每個Second實例對應的First實例。 例如,您可以通過創建Map.Entry實例來執行此操作:

Map<Second,First> result =
    listOfFirst.stream()
               .flatMap(p->p.getSecondDetails()
                            .stream()
                            .map(sec -> new SimpleEntry<>(sec,p))
               .collect(Collectors.toMap(Map.Entry::getKey,
                                         Map.Entry::getValue));

如何轉換列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想將List&lt;ObjectInList&gt;轉換為Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每個 Object 都可以有重復的類型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object>

[英]How to convert LIst<Object> to Map<K, V> with using java stream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 使用流將Java <Object>收集到Java 8中的Map <String,List <Object >> 使用自定義收集器對象對 Java Stream 中的哈希映射中的值進行分組? java流列表 <Object[]> 到地圖 <Object, List<Object[]> &gt; 如何轉換列表<object>至 Map<k, v> 使用 java stream<div id="text_translate"><p> 我想將List&lt;ObjectInList&gt;轉換為Map&lt;K, V&gt;</p><pre> class ObjectInList { List&lt;Long&gt; listWithLong; Map&lt;String, Object&gt; dataMap; // there is 'id' key, and i want to use this id as key in map to be converted }</pre><p> 新的 map 格式如下</p><pre>String type; // this type is value of dataMap. List&lt;Long&gt; contents</pre><p> List&lt;Object&gt;中的每個 Object 都可以有重復的類型</p><p>例如</p><pre>///////// before converted //////////// [ { list: [1,2,3], dataMap: { type: "a", } }, { list: [4,5,6], dataMap: { type: "b", } }, { list: [7,8], dataMap: { type: "a", } }, ] ///////////// after converted ////////// { "a": [1,2,3,7,8], "b": [4,5,6] }</pre></div></k,></object> 將 object 列表轉換為 map java 8 ZF7B44CFAFD5C52223D7BZBZ 用於 Map 的 Java 8 流過濾器<String, List<Object> &gt; 轉換地圖 <Integer, List<Object> &gt;到地圖 <Integer, Map<String, Map<LocalDate, Integer> &gt;&gt;使用Java流API 轉換地圖 <Integer, Object> 到地圖 <Integer, List<Object> &gt;,不使用for循環(java) 使用流從地圖填充對象列表 使用Java流將對象映射到多個對象
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM