for (BlockSubscription blockSubscription : blockSubscriptions) { for (BlockSubscriptionData blockSubscriptionData : subscriptionCountList) { if (blockSubscription.getId() == blockSubscriptionData.getActivityId()){ blockSubscription.setSubscriptionCount(blockSubscriptionData.getSubscriptionCount()); } } for (BlockSubscriptionData blockSubscriptionData : subscriptionPeopleCountList) { if (blockSubscription.getId() == blockSubscriptionData.getActivityId()){ blockSubscription.setSubscriptionPeopleCount(blockSubscriptionData.getSubscriptionPeopleCount()); } } } 使用 stream优化
时间: 2024-02-05 08:10:57 浏览: 19
可以使用stream来优化这段代码,具体实现如下:
```
blockSubscriptions.forEach(blockSubscription -> {
subscriptionCountList.stream()
.filter(subscriptionData -> blockSubscription.getId() == subscriptionData.getActivityId())
.findFirst()
.ifPresent(subscriptionData -> blockSubscription.setSubscriptionCount(subscriptionData.getSubscriptionCount()));
subscriptionPeopleCountList.stream()
.filter(subscriptionData -> blockSubscription.getId() == subscriptionData.getActivityId())
.findFirst()
.ifPresent(subscriptionData -> blockSubscription.setSubscriptionPeopleCount(subscriptionData.getSubscriptionPeopleCount()));
});
```
以上代码使用了 `forEach`方法遍历 `blockSubscriptions`列表,并使用 `stream`对 `subscriptionCountList`和`subscriptionPeopleCountList`进行筛选,以找到与当前 `blockSubscription` 对象相匹配的 `BlockSubscriptionData` 对象,并将对应的属性值设置到 `blockSubscription` 对象中。同时,使用 `findFirst` 方法来取第一个匹配项,以避免重复设置属性。