gpt4 book ai didi

Java 8 Streams - 过滤多个条件

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:52 25 4
gpt4 key购买 nike

根据一些运动成绩数据,我有一个 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;
}

最佳答案

足够简单

resultList.stream()
.filter(fixture -> fixture.getHome().equals(team) || fixture.getAway().equals(team)))
.collect(toList());

编辑:这是基于顺序对您无关紧要的假设。如果您的最终列表需要主场结果然后客场结果,请查看 Elliott Frisch's answer .

关于Java 8 Streams - 过滤多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49368308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com