Доступ к свойствам объекта, которые хранятся в списке Java, и повторение - PullRequest
0 голосов
/ 06 марта 2020

У меня довольно простой вопрос, так как я начинающий.

Я использую класс Java List, и мне интересно знать, как его перебрать и получить все свойства объекта в виде суммы чисел?

Например, я иметь класс Product с типом свойства цены int. Мой список теперь заполнен парой продуктов. Теперь я хочу перебрать этот список и получить сумму всех цен Продукта.

Как мне это сделать? Спасибо.

1 Ответ

2 голосов
/ 06 марта 2020

Одна строка для этого с использованием 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...