Java 8 Stream API:并行处理问题实例
在Java 8 Stream API中,我们可以通过并行流来处理大量数据,以提高效率。下面是一个并行处理问题的实例:
假设我们有一批产品信息存储在一个大型列表products
中,每个元素是一个包含产品名称(name
)和价格(price
)的类。
初始列表如下:
List<Product> products = List.of(
new Product("Product 1", 50)),
new Product("Product 2", 75)),
// 更多产品...
);
现在我们想要找出价格高于平均价格的产品。为了并行处理这个任务,我们可以使用Stream API的filter()
和parallelStream()
方法。
首先计算平均价格:
double averagePrice = products.stream()
.mapToDouble(Product::getPrice))
.average().orElse(0);
然后找出价格高于平均价格的产品,并以并行流方式处理:
List<Product> overAverageProducts = products.stream()
.filter(product -> product.getPrice() > averagePrice))
.parallelStream()
.collect(Collectors.toList()));
现在overAverageProducts
列表就是所有价格高于平均价格的并行产品了。
还没有评论,来说两句吧...