使用Java遍历列表的有效方法

时间:2020-04-13 08:13:26

标签: java loops

我有一个函数逻辑,如果存在具有空项和当前价格属性的价格dto,该函数逻辑将使处理失败。

我想知道在Java中是否有更有效或更清洁的方法来做到这一点。在信息流或其他任何信息中。

这是我当前的代码:

List<PriceDto> priceDtoList = thisIsAClass.getPriceDtos();

 for (PriceDto priceDto: priceDtoList) {
        if (priceDto.getItem() == null && priceDto.getCurrentPrice() == null) 
         {
            thisIsAnotherClass.failTheProcess();
            break;
        }
    }

  thisIsAnotherClass.anotherProcess();

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在较新版本的Java中,更常见的方式是使用findFirstfindAny

例如,

List<PriceDto> priceDtoList = thisIsAClass.getPriceDtos();

Optional<PriceDto> result = list
            .stream()
            .filter(dto -> dto.getItem() ==null && dto.getCurrentPrice() == null)
            .findAny();


if(result.isPresent()) {
     thisIsAnotherClass.failTheProcess();
}

  thisIsAnotherClass.continueTheProcess();

如果列表中有很多数据,您还可以考虑向流中添加.parallel()调用以提高搜索的整体性能。