有什么方法可以将以下操作作为一组流操作执行,而不是显式检查RecommendationProducts是否为空,然后返回默认列表,否则返回过滤后的列表?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
最佳答案
您可以尝试以下方法:
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.collectingAndThen(Collectors.toList(), list -> list.isEmpty() ? DEFAULT_PRODUCTS : list));
关于java - 如果使用Java 8 Streams列表为空,则返回默认列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58276601/