java list 去重求和
时间: 2023-07-07 09:44:39 浏览: 125
可以使用 Java 8 的 Stream API 和 Collectors 工具类来实现 list 的去重求和,示例代码如下:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 1, 5);
int sum = list.stream() // 将 list 转换为 Stream
.distinct() // 去重
.mapToInt(Integer::intValue) // 转换为 IntStream
.sum(); // 求和
System.out.println(sum); // 输出结果为 15
```
上述代码中,首先将 list 转换为 Stream,然后使用 distinct() 方法进行去重,接着使用 mapToInt() 方法将 Stream 转换为 IntStream,最后使用 sum() 方法求和。
相关问题
stream list集合去重求和
Java中使用Stream对List集合进行去重并求和的方法有两种。第一种方法是使用循环遍历List集合,利用一个Map存储id和BillsNums对象的映射关系,如果遍历的元素的id已经存在于Map中,则将当前元素的sums和nums与Map中对应的元素进行相加;如果id不存在于Map中,则直接将当前元素添加到Map中。最后,将Map中的值转换为List返回。
第二种方法是对第一种方法的升级版。同样使用Stream对List集合进行处理,利用Collectors.toMap()方法将id作为key,如果有重复的id,则根据指定的合并规则将重复的元素进行合并。合并时,将重复元素的nums和sums与第一个元素进行相加,然后将结果赋值给第一个元素。最后,将Map中的值转换为List返回。
llist对象两个属性相乘在相加_Java8使用stream实现list中对象属性的合并(去重并求和)...
可以使用Java 8的Stream API来实现list中对象属性的合并(去重并求和)。假设有一个`List<MyObject>`,其中每个`MyObject`对象有两个属性`property1`和`property2`,我们想要将所有`property1`和`property2`相乘的结果相加并去重,可以按照以下步骤进行:
1. 使用`distinct()`方法去重。
2. 使用`mapToInt()`方法将所有`MyObject`对象的`property1`和`property2`相乘并转换成`int`类型。
3. 使用`sum()`方法将所有结果相加。
代码如下:
```
List<MyObject> list = ...;
int result = list.stream()
.distinct()
.mapToInt(obj -> obj.getProperty1() * obj.getProperty2())
.sum();
```
其中`getProperty1()`和`getProperty2()`分别是`MyObject`类中的两个属性的getter方法。
阅读全文