一、比较两个list的差异
public List<String> getAList( List<String> listA ,List<String> listB){
// 使用Stream过滤
List<String> result = listA.stream()
.filter(element -> !listB.contains(element))
.collect(Collectors.toList());
log.info("A中有但B中没有的元素:{} ",result);
return result;
}
java
public List<String> getAList( List<String> listA ,List<String> listB){
// 使用Stream过滤
List<String> result = listA.stream()
.filter(element -> !listB.contains(element))
.collect(Collectors.toList());
log.info("A中有但B中没有的元素:{} ",result);
return result;
}
二、计算一个list里面的值的总和
//计算总工时
int totalHjValue = PmMemberHourVoList.stream()
.map(PmMemberHourVo::getHjValue) // 提取工时
.filter(hjValue -> hjValue != null && hjValue.matches("\\d+")) // 过滤有效数字
.mapToInt(Integer::parseInt) // 转换为int
.sum();
java
//计算总工时
int totalHjValue = PmMemberHourVoList.stream()
.map(PmMemberHourVo::getHjValue) // 提取工时
.filter(hjValue -> hjValue != null && hjValue.matches("\\d+")) // 过滤有效数字
.mapToInt(Integer::parseInt) // 转换为int
.sum();
Stream(流)是 Java 8 引入的用于处理集合数据的高级抽象,支持函数式编程风格的操作。
-
声明式:描述做什么,而不是怎么做
-
可组合:多个操作可以链式调用
-
可并行:支持并行处理提高性能
-
内部迭代:自动迭代,无需手动写循环
-
