Одна строка для этого с использованием Java потоков:
public int calculateSum(List<Product> products) {
return products.stream().mapToInt(Product::getPrice).sum()
}
Объяснение:
.mapToInt(Product::getPrice)
, эквивалентно mapToInt(p -> p.getPrice())
. По сути, из списка продуктов мы получаем их цены, и в итоге получаем поток чисел (цен).
.sum()
просто вычислит сумму целых чисел, которые находятся в потоке, в данном случае список цен.
Если вы хотите сделать это без потоков, вот код для этого:
public int calculateSum(List<Product> products) {
int sum = 0;
for (Product product : products) {
sum += product.getPrice();
}
return sum;
}
Я принял класс Product
выглядит следующим образом:
public class Product {
private int price;
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}