使用 Java 8 Stream 查找新收费方案

假设我们有两个列表:

  • List<OtherChargeScheme> newChargeSchemes:包含所有新收费方案。* List<Long> oldChargeSchemeIds:包含所有旧收费方案的 ID。

OtherChargeScheme 类有一个名为 chargeSchemeId 的属性。

我们希望找到所有在 newChargeSchemes 中存在,但在 oldChargeSchemeIds 中不存在的 OtherChargeScheme

使用 Java 8 流 (Stream) 实现该需求:

我们可以使用 filter() 方法过滤出符合条件的 OtherChargeScheme 对象,然后使用 collect() 方法将结果收集为一个 List。javaList result = newChargeSchemes.stream() .filter(scheme -> !oldChargeSchemeIds.contains(scheme.getChargeSchemeId())) .collect(Collectors.toList());

代码说明:

  1. newChargeSchemes.stream()newChargeSchemes 转换为一个流。2. .filter(scheme -> !oldChargeSchemeIds.contains(scheme.getChargeSchemeId())) 使用 filter() 方法过滤流中的元素,仅保留 chargeSchemeId 不在 oldChargeSchemeIds 中的 OtherChargeScheme 对象。3. .collect(Collectors.toList()) 使用 collect() 方法将过滤后的结果收集为一个 List,并赋值给 result 变量。

注意: 上述代码假设 OtherChargeScheme 类中存在一个名为 getChargeSchemeId() 的方法来获取 chargeSchemeId 属性的值。

示例:

假设 newChargeSchemes 包含以下收费方案:

[ { chargeSchemeId: 1 }, { chargeSchemeId: 2 }, { chargeSchemeId: 3 }]

oldChargeSchemeIds 包含以下收费方案 ID:

[1, 2]

使用上述代码,result 将包含以下收费方案:

[ { chargeSchemeId: 3 }]

因为 chargeSchemeId 为 3 的方案在 newChargeSchemes 中存在,但在 oldChargeSchemeIds 中不存在。

Java 8 Stream 查找新收费方案:使用 filter 和 collect

原文地址: http://www.cveoy.top/t/topic/fdeo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录