gpt4 book ai didi

Java8 Stream 作为一个整体映射到一个 Function

转载 作者:行者123 更新时间:2023-12-02 12:19:25 25 4
gpt4 key购买 nike

我想知道是否有更好的方法来使用 lambda 重写 groupA 方法作为链接操作的一部分?

public class Id {
private final int value;
public Id(int value) {
this.value = value;
}

public int value() {
return value;
}
}

public class Ids implements Iterable<Id> {
private final List<Id> ids;

private Ids(List<Id> ids) {
this.ids = ids;
}

public static Ids of(List<Id> ids) {
return new Ids(ids);
}

public Ids groupA() {
return Ids.of(ids.stream()
.filter(id -> id.value() > 5)
.collect(Collectors.toList()));
}

@Override
public Iterator<Id> iterator() {
return ids.iterator();
}
}

基本上我想做类似的事情

ids.stream()
.filter(id -> id % 10 > 5)
.collect(Collectiors.toList())
.andThen(Ids::of);

想知道这是否可能

最佳答案

当然。您可以直接执行

Ids.of(ids.stream()
.filter(id -> id % 10 > 5)
.collect(Collectors.toList()))

或者您可以将其添加到收集器中:

ids.stream()
.filter(id -> id % 10 > 5)
.collect(Collectors.collectingAndThen(Collectors.toList(), Ids::of))

关于Java8 Stream 作为一个整体映射到一个 Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999804/

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