jdk8 lambda list转map
时间: 2023-11-09 08:03:24 浏览: 37
可以使用Java 8中的Stream API和lambda表达式将List转换为Map。示例代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
Map<String, Integer> map = list.stream().collect(Collectors.toMap(Function.identity(), String::length));
```
这个例子将List中的每个元素作为Map的key,将每个元素的长度作为Map的value。
相关问题
用 stream list 转 map
使用stream可以很方便地将List转换为Map。在JDK8以后,我们可以使用lambda表达式和Stream的collect方法来实现这个功能。具体的做法是使用Collectors.toMap方法,该方法接受两个参数,第一个参数是key的生成函数,第二个参数是value的生成函数。例如,可以使用以下代码将List<User>转换为Map<Integer, String>:
```
Map<Integer, String> userMap = userList.stream()
.collect(Collectors.toMap(User::getId, User::getName));
```
这里的User是一个自定义的类,getId和getName是User类的两个方法,分别用于生成Map中的key和value。上述代码将根据User对象的id作为key,name作为value,将List<User>转换为Map<Integer, String>。
如果你希望将List<User>直接转换为Map<Integer, User>,可以使用以下代码:
```
Map<Integer, User> userMap = userList.stream()
.collect(Collectors.toMap(User::getId, user -> user));
```
这里的User是一个自定义的类,getId是User类的一个方法,用于生成Map中的key,user -> user表示将User对象本身作为value。上述代码将根据User对象的id作为key,将User对象本身作为value,将List<User>转换为Map<Integer, User>。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
jdk8 list stream获取某个字段为新list
可以使用Java 8中的Stream API和Lambda表达式来获取List中某个字段的值,并将其组成新的List集合。你可以使用map方法来映射每个对象的字段值,然后使用collect方法将这些值收集到一个新的List中。
例如,如果你有一个List<Object>对象列表,并且你想要提取其中一个字段的值,你可以使用以下代码:
List<Object> objectList = new ArrayList<>();
List<Object> newList = objectList.stream()
.map(Object::getVar)
.collect(Collectors.toList());
在这个例子中,我们使用stream方法将List转换为一个流,然后使用map方法将每个对象的getVar字段值映射到一个新的流中。最后,使用collect方法将这些值收集到一个新的List中。
如果你有一个List<ShoppingCart>对象列表,并且你想要提取其中一个字段的值,比如selectByUId的goodsId,你可以使用以下代码:
List<ShoppingCart> selectByUId = new ArrayList<>();
List<Integer> goodsIdList = selectByUId.stream()
.map(ShoppingCart::getGoodsId)
.collect(Collectors.toList());
在这个例子中,我们使用stream方法将List转换为一个流,然后使用map方法将每个对象的getGoodsId字段值映射到一个新的流中。最后,使用collect方法将这些值收集到一个新的List中。
这样,你就可以使用Java 8的Stream API和Lambda表达式来获取List中某个字段的值,并将其组成新的List集合。
#### 引用[.reference_title]
- *1* *3* [Java8 stream 提取 List 中元素的某一字段生成新的 List](https://blog.csdn.net/kjahe/article/details/126489216)[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* [java list获取某个字段](https://blog.csdn.net/weixin_42594427/article/details/129448097)[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 ]