根据一些运动成绩数据,我有一个 Fixture
对象,它有 getHome()
和 getAway()
方法。我想缩短我编写的这个方法,只使用一个 lambda 函数(而不是创建一个新列表和两个 lambda),这可能吗?
private Collection<FixtureResult> finalResults(Team team) {
List<FixtureResult>finalResults = new ArrayList<>();
List<FixtureResult> homeResults = resultList.stream().filter(fixture ->
fixture.getHome().equals(team))
.collect(toList());
List<FixtureResult> awayResults = resultList.stream().filter(fixture ->
fixture.getAway().equals(team))
.collect(toList());
finalResults.addAll(homeResults);
finalResults.addAll(awayResults);
return finalResults;
}
原文由 Clatty Cake 发布,翻译遵循 CC BY-SA 4.0 许可协议
足够简单
编辑: 这是基于订单对您无关紧要的假设。如果您的最终列表需要主场结果然后离开,请查看 Elliott Frisch 的回答。