Java SE 8 Programmer II — Question 80

Given:
public class Product {
int id; int price;
public Product (int id, int price) {
this.id = id;
this.price = price;
}
Public String toString () { return id + ":" + price;)
}
and the code fragment:
List<Product> products = new ArrayList <> (Arrays.asList(new Product(1, 10), new Product (2, 30), new Product (3, 20));
Product p = products.stream().reduce(new Product (4, 0), (p1, p2) -> { p1.price+=p2.price; return new Product (p1.id, p1.price);}); products.add(p); products.stream().parallel()
.reduce((p1, p2) - > p1.price > p2.price ? p1 : p2)
.ifPresent(System.out: :println);
What is the result?

Answer options

Correct answer: C

Explanation

The correct answer is C, as the stream operations aggregate the prices of all products, resulting in a new product with a price of 60. The subsequent parallel reduction identifies the product with the highest price, which includes all products in the output. The other options are incorrect as they either misrepresent the output or fail to capture the full result of the stream operations.