[英]Java Lists list item values
我有一个List例子,我想调用它们的函数并列出返回的答案
final List<String> sources = new ArrayList<>();
// initialize
final List<Integer> answers = new ArrayList<>();
for(final String source : sources)
answers.add(calculate(source));
GoogleGuava
或ApacheCommons
是否有任何标准功能可以使用它而不是这些凌乱的代码
喜欢(示例目的):
final List<String> answers = Lists.calculate(sources, new CalculateListener(..));
为了便于理解:JavaScript中的UnderscoreJs
有一个方法map
我想在java GoogleGuava
或ApacheCommons
存在类似的东西,如果存在的话
您可以使用Function
接口和Iterables
类进行一些操作。
从我的示例中可以看出,您正在尝试将 源 转换为计算源 ,因此代码如下所示:
Function<String, String> transformer = new Function<String, String>() {
public String apply(String source) {
return calculate(source);
}
};
Iterable<String> calculatedSources = Iterables.transform(sources, transformer);
List<String> calculatedSourcesAsAList = Lists.newArrayList(calculatedSources);
作为旁注,Java8的Stream功能非常清楚地介绍了这种常见的操作类型,您必须将源映射到计算的源,然后收集结果。 它只是一个单行:
sources.stream().map(source -> calculate(source)).collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.