gpt4 book ai didi

Java流不匹配多个条件

转载 作者:行者123 更新时间:2023-12-01 20:10:50 24 4
gpt4 key购买 nike

在 dto 到 bean 的转换中,

仅当 dto 在 bean 中找不到时,或者 dto 的 id 为空时,我才尝试添加 dto

我使用没有匹配的流。

当我尝试添加许多汽车时,仅添加第一辆

 List<Car> cars = bean.getCar();
List<CarDto> carsDto = dto.getCar();

for (CarDto carDto : carsDto) {

if (cars.stream().noneMatch(e -> Objects.equals(e.getId(), carDto.getId()) || carDto.getId()==null )) {

//get car from bd....

bean.addCar(car);
}

}

最佳答案

noneMatch 中设置 carDto.getId()==null 条件将阻止您获取具有 null id 的 CarDto

您可以将其更改为

if (carDto.getId() == null 
|| cars
.stream()
.noneMatch(e -> Objects.equals(e.getId(), carDto.getId())))

更新:

感谢 Holger@ 的建议:您可以将第二个 if 条件简化为(并且不需要使用 Objects.equals 因为 carDto.getId 不能为空。

cars.stream()
.map(Car::getId)
.noneMatch(carDto.getId()::equals)

关于Java流不匹配多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com