list集合根据字段转map
时间: 2023-08-10 13:04:03 浏览: 191
在Java 8中将List转换为Map对象方法
根据提供的引用内容,可以使用Java 8的Stream API将一个List集合根据字段转换为Map。具体的实现可以参考以下代码示例:
```
List<DemoTestPo> list = ...; // 原始的List集合
Map<String, List<DemoTestPo>> map = list.stream()
.collect(Collectors.groupingBy(k -> k.getName() + k.getClassify()));
```
上述代码将根据`getName()`和`getClassify()`两个字段的值进行拼接,作为Map的键,将对应的List对象作为值。这样就可以将List集合转换为一个Map,其中键是字段拼接后的值,值是对应的List对象。\[1\]
另外,如果只需要将List集合的值转换为一个List,可以使用以下代码示例:
```
List<String> valueList = new ArrayList<>(map.values());
List<String> valueList2 = map.values().stream().collect(Collectors.toList());
```
上述代码将Map的值部分转换为一个List对象,分别使用了ArrayList的构造函数和Stream API的`collect`方法。这样就可以得到一个包含所有值的List对象。\[2\]
总结起来,根据字段将List集合转换为Map的方法是使用Stream API的`collect`方法和`groupingBy`收集器,而将Map的值转换为List的方法是使用ArrayList的构造函数或Stream API的`collect`方法。\[1\]\[2\]
#### 引用[.reference_title]
- *1* [list转map的操作](https://blog.csdn.net/qq_37781796/article/details/124959854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [map转list对象方法,通过stream或者iterator.key集合转list,values集合转list](https://blog.csdn.net/qq_48964306/article/details/126383156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【list转map的几种实用方法】](https://blog.csdn.net/weixin_43898002/article/details/127612411)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文