簡體   English   中英

將 object 列表轉換為 map java 8 ZF7B44CFAFD5C52223D7BZBZ

[英]convert list of object to map java 8 stream

我有 pojo 如下

Class Employee () {
 Private name;
 Private id;
}

這個員工 class 用於從 mybatis orm 中獲取對象列表(List)。

mybatis 返回 output 作為 List 因為 mybatis 不支持 Map 作為返回類型

我必須將其轉換為 Map

我嘗試了以下一個但沒有奏效,因為它需要 getName() 和 getId() 方法

Map<String, String> map = list.stream().collect(Collectors.toMap(Employee::getId, Employee:getName));

請告知是否有一種方法可以在不修改 Employee pojo 的情況下使用 stream 實現。

注意:我知道我們可以使用 ofr 或 for each 循環來實現。

你應該總是發布精心制定的問題,但由於你是新手,所以忽略那部分。 我在這里假設您的nameID都是字符串類型。

下面的代碼非常適合您。

Map<String, String> map = list.stream().filter(Objects::nonNull).collect(Collectors.toMap(Employee::getId, Employee::getName));

如果您也想保留訂單,go 如下所述。

Map<String, String> map = list.stream().filter(Objects::nonNull).collect(Collectors.toMap(Employee::getId, Employee::getName, (oldValue, newValue) -> oldValue,LinkedHashMap::new));

如果不是這樣,如果您添加您收到的error message將會很好,這樣將能夠為您提供詳細的幫助。

它應該是

Map<Integer, String> result1=list.stream().collect(
                Collectors.toMap(Employee::getId, Employee::getName));

如何轉換列表<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.

相關問題 轉換 GraphTraversal <vertex, map<object, list> &gt; 進入Java8 stream</vertex,> 如何轉換列表<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> 轉換地圖 <Integer, List<Object> &gt;到地圖 <Integer, Map<String, Map<LocalDate, Integer> &gt;&gt;使用Java流API 如何使用 Java 流列表進行轉換<Map<String,Object> &gt; 列出<String>刪除每個流的一部分 Java 8 Stream convert list to map, where map key is an object derived from two fields of the list? 使用帶索引的流將Java列表轉換為映射 用於 Map 的 Java 8 流過濾器<String, List<Object> &gt; java流列表 <Object[]> 到地圖 <Object, List<Object[]> &gt; 使用collection -Stream將Java List轉換為對象 轉換流 <Object[]> 列出 <Object> 使用java流
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM