java stream().map 如果集合中的字段a不是空的则赋值返回集合
时间: 2024-05-03 19:17:36 浏览: 21
中字段a的平方,否则返回0该怎么写?
你可以使用如下代码实现:
```
List<Integer> list = Arrays.asList(1, 2, 3, null, 5);
List<Integer> output = list.stream()
.map(i -> {
if (i != null) {
return i * i;
} else {
return 0;
}
})
.collect(Collectors.toList());
```
这段代码中,我们首先创建了一个包含 1、2、3、null 和 5 的 Integer 类型集合 list。然后,我们使用 stream() 方法将其转换为流。接着,我们使用 map() 方法,传入一个 lambda 表达式作为参数。在 lambda 表达式中,我们首先判断集合中的元素是否为 null,若不为 null,则返回该元素的平方;否则,返回 0。最后,我们使用 collect() 方法将处理结果转换为集合类型并存储在 output 变量中。
相关问题
Stream流处理将两个集合的相同字段,赋值到另一个集合
假设有两个类,ClassA和ClassB,都有一个相同的字段field,现在要将这两个类的field字段的值赋值到一个新的类ClassC中,可以使用Java 8中的Stream流处理来实现。具体代码如下:
```java
List<ClassA> listA = new ArrayList<>();
List<ClassB> listB = new ArrayList<>();
// 添加数据到 listA 和 listB 中
List<ClassC> listC = Stream.concat(listA.stream(), listB.stream())
.map(obj -> new ClassC(obj.getField()))
.collect(Collectors.toList());
```
这段代码首先使用Stream.concat()方法将listA和listB合并成一个流,然后使用map()方法将每个对象的field字段值提取出来,再用这些值创建一个新的ClassC对象,并最终使用collect()方法将所有的ClassC对象收集到一个列表中。
一个List集合中存的map 对map中的A字段进行分组 并统计B字段值的个数 且B字段为string类型 java怎么实现
如果B字段是String类型,可以使用Java 8的Stream API和Map的compute()方法来实现对Map中的A字段进行分组,然后使用Map的merge()方法对B字段进行求和。具体实现代码如下:
```java
List<Map<String, String>> list = new ArrayList<>();
// 假设List中有多个Map对象,每个Map对象都有A和B两个字段
// ...
// 对A字段进行分组,并统计B字段的个数
Map<String, Integer> result = new HashMap<>();
list.forEach(map -> result.compute(map.get("A"), (k, v) -> v == null ? 1 : v + 1));
// 输出分组结果
System.out.println(result);
```
在上述代码中,首先使用List的forEach()方法遍历List中的每个Map对象,然后使用Map的compute()方法对A字段进行分组,得到的结果是一个Map,其中key为A字段的值,value为B字段的值的个数或者为1,然后使用Map的merge()方法对B字段进行求和。如果key相同,则将B字段的值相加,否则直接将B字段的值赋值为1。
需要注意的是,如果B字段中的值可能为null或者空字符串,需要在compute()方法中进行判断处理。
相关推荐
![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)