рассмотрим следующий класс:
public class PersonalExpense {
private String name;
private int currentExpenses;
...
Как мне написать поток Java-конвейера, который работает так же, как и первый метод (getRemainingCompanyBalance).этот код приводит к ошибке.
список содержит отдельные списки для каждого отдела.каждая запись в подсписке является экземпляром класса.имя / стоимость:
de # 1first "/ 9900, de # 1second" / 8700, de # 2first "/ 8500, de # 2second" / 10000, de # 3first "/ 7800, de #3 секунды "/ 6900
private static long getRemainingCompanyBalance ( long initialBalance, List<ArrayList<PersonalExpense>> total) {
long remainingBalance = initialBalance;
for (List<PersonalExpense> departmentExpense : total) {
for (PersonalExpense personalExpense : departmentExpense) {
System.out.println(personalExpense.getName());
remainingBalance = remainingBalance - personalExpense.getCurrentExpenses();
}
}
return remainingBalance;
}
public static long getRemainingCompanyBalanceLambda ( long initialBalance, List<ArrayList<PersonalExpense>> total) {
long remainingBalance = initialBalance;
Integer sum = total
.stream()
.flatMap(Collection::stream)
.filter(pe -> pe instanceof PersonalExpense)
.map (pe -> (PersonalExpense) pe)
.collect(Collectors.toList())
.mapToInt(PersonalExpense::getCurrentExpenses)
.sum();
return remainingBalance -= sum;
}
}
Я пытаюсь собрать расходы, а затем вычесть их из баланса