使用 Java Stream 流操作,可以高效地匹配 List 中 ChargeScheme 的 ID 和 List 中对象的 ChargeScheme ID,并将匹配到的 RoomRevenueConfigChargeScheme 对象的 roomRevenueConfig 的 room 属性赋值给 ChargeScheme 的 rooms 属性。

以下代码实现该操作:

chargeSchemes.stream()
    .filter(cs -> roomRevenueConfigChargeSchemes.stream()
        .anyMatch(rrccs -> rrccs.getChargeScheme().getId().equals(cs.getId())))
    .forEach(cs -> {
        RoomRevenueConfigChargeScheme rrccs = roomRevenueConfigChargeSchemes.stream()
            .filter(rrccs -> rrccs.getChargeScheme().getId().equals(cs.getId()))
            .findFirst().orElse(null);
        if (rrccs != null) {
            cs.setRooms(rrccs.getRoomRevenueConfig().getRoom());
        }
    });

首先,使用 stream 流对 chargeSchemes 集合进行遍历,并使用 filter 过滤出 ChargeScheme ID 与 roomRevenueConfigChargeSchemes 中任意元素的 ChargeScheme ID 相同的元素。然后,使用 forEach 对过滤出的元素进行操作,通过 stream 流遍历 roomRevenueConfigChargeSchemes 集合,使用 filter 过滤出 ChargeScheme ID 与当前元素相同的元素,使用 findFirst 获取第一个匹配的元素。如果找到匹配元素,则将该元素的 roomRevenueConfig 的 room 属性赋值给 chargeSchemes 中对应元素的 rooms 属性。

这种方式可以有效地利用 Java Stream 流的特性,简化代码逻辑,提高代码可读性和可维护性。

Java Stream 流操作:匹配 ChargeScheme ID 并更新 rooms 属性

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

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