<分区>
我正在尝试将 Java 循环代码转换为 Java 8 流。
我有一个 Row
对象的 ArrayList
,它应该对所有 deliveredLength
求和,但不包括具有相同内容的 Row
对象另一个具有相同内容的 Row
对象。
Java 循环
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()
}