Если вы не против использования сторонней библиотеки, то sumOfInt
доступен в Eclipse Collections. Он возвращает long
вместо int
, поэтому вероятность переполнения гораздо менее вероятна.
Вы можете использовать статический метод полезности на Iterate
класса, который работает с любым java.lang.Iterable
типа следующим образом:
List<Account> accounts = new ArrayList<>();
long sum = Iterate.sumOfInt(accounts, Account::getAmount);
Или, если ваш список является MutableList
, вы можете использовать метод непосредственно доступны на список.
MutableList<Account> accounts = Lists.mutable.empty();
long sum = accounts.sumOfInt(Account::getAmount);
Примечание: Я коммиттер для Eclipse, Коллекции
да его ИНТ я обновил мой вопрос – LynAs