Я пытаюсь преобразовать код цикла Java в поток Java 8. У меня есть ArrayList
из объектов, которые должны суммировать все deliveredLength
, за исключением объектов , имеющих тот же контент, что и другой объект , который имеет одинаковый контент.Выбор отдельных объектов по пользовательскому полю через Stream API
Java Loops
public int getDeliveredLength() {
List<Row> distinct = new ArrayList<>();
for (Row row : rows) {
if (sameContent(distinct, row)) {
continue;
}
distinct.add(row);
}
int sum = 0;
for (Row row : distinct) {
sum += row.getDeliveredLength();
}
return sum;
}
private boolean sameContent(List<Row> list, Row other) {
for (Row row : list) {
if (other.sameContent(row)) {
return true;
}
}
return false;
}
Что бы код потока Java 8 будет?
public int getDeliveredLength() {
return rows.stream().filter(??).map(??).mapToInt(Row::getDeliveredLength).sum()
}
Вы пробовали? Есть ошибки? – Phate01
Также проверьте [this] (http://stackoverflow.com/q/27870136/4856258) и [это] (http://stackoverflow.com/q/32383428/4856258) вопрос. –