gpt4 book ai didi

java - 如何将函数应用于每个集合元素以便在 Guava 中对其进行变异?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:12:21 24 4
gpt4 key购买 nike

我已经使用 Guava 11(因为 Java 5)一年了,但我似乎没有找到一种方法来执行 Groovy 的 each 或 Scala 的 foreach,也就是说,将函数应用于可以变异的集合元素它们并返回变异元素的集合...... Iterables,Collections 等上的所有这些方法实际上都不能做到这一点。我不想使用 for 循环。也许 Iterables.all() 可以最好地满足这个目的,但是没有办法做像这样的事情:

Iterable result = Iterables.each(Iterables.filter(c, predicate), function);

最佳答案

我不认为 Guava 包含用于此的方法,因为 Java 包含用于执行此操作的 for-each 循环:

for(Element x : collection){
mutate(x);
}

编辑:一种更通用的方法是将 for-each 循环封装在一个方法中,并将变异策略作为参数传递给它:

interface Mutation<T> {
void apply(T subject);
}

<T> Collection<? extends T> mutate(Collection<? extends T> input, Mutation<? super T> mutation) {
for (T element : input) {
mutation.apply(element);
}
return input;
}

关于java - 如何将函数应用于每个集合元素以便在 Guava 中对其进行变异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16231410/

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