stream流list转map排除null
时间: 2023-10-13 09:20:20 浏览: 13
将Stream流中的元素转换为Map时可以使用如下代码:
```
List<String> list = Arrays.asList("one", "two", null, "three", null);
Map<String, Integer> map = list.stream()
.filter(Objects::nonNull)
.collect(Collectors.toMap(Function.identity(), String::length));
```
这段代码将会过滤掉List中的null元素,然后将列表中的元素作为Key,长度作为Value存储到Map中。
相关问题
stream流 list转map
有几种方法可以使用stream流将List转换为Map。首先是使用toMap方法,该方法接受两个参数,第一个参数是用于生成Map的键的函数,第二个参数是用于生成Map的值的函数。例如,使用User对象的id作为键,整个User对象作为值,可以这样写:
Map<Long, User> map = list.stream().collect(Collectors.toMap(User::getId, Function.identity()));
如果存在键重复的情况,可以使用第三个参数来决定使用哪个键作为主键。例如,使用User对象的id作为键,User对象的age作为值,可以这样写:
Map<Long, String> map = list.stream().collect(Collectors.toMap(User::getId, User::getAge, (key1, key2) -> key2));
另外,如果想要根据某个属性对List进行分组,可以使用groupingBy方法。例如,根据User对象的id进行分组,可以这样写:
Map<Integer, List<User>> map = list.stream().collect(Collectors.groupingBy(User::getId));
以上是stream流将List转换为Map的几种常见方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [List使用stream流转成map的几种方式](https://blog.csdn.net/mianxiao15908/article/details/128673800)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [(stream流)List转Map](https://blog.csdn.net/lizaiismy/article/details/121352640)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
stream流map转list
在Java中,可以使用Stream流将Map转换为List。以下是两种常用的方法:
方法1:使用keySet()方法
可以使用Map的keySet()方法获取所有的键,并将其转换为List。例如:
List<Integer> list1 = new ArrayList(mapDemo.keySet());
方法2:使用Stream的collect()方法
可以使用Stream的collect()方法将Map的键或值收集到List中。例如:
List<Integer> list2 = mapDemo.keySet().stream().collect(Collectors.toList());
对于将Map的值转换为List,同样可以使用类似的方法:
方法1:使用values()方法
可以使用Map的values()方法获取所有的值,并将其转换为List。例如:
List<String> list3 = new ArrayList(mapDemo.values());
方法2:使用Stream的collect()方法
可以使用Stream的collect()方法将Map的值收集到List中。例如:
List<String> list4 = mapDemo.values().stream().collect(Collectors.toList())。
以上方法可以根据具体需求选择使用,它们都可以将Map转换为List,实现了不同的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Java:Map转List (用stream实现)](https://blog.csdn.net/SeniorShen/article/details/120265477)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Java8新特性Stream流之List、Map互转、去重、过滤](https://blog.csdn.net/hurtseverywhere/article/details/121371920)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)