gpt4 book ai didi

java - Guava 函数根据对列表中每个项目的应用条件将项目添加到结果集合中

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

我正在尝试通过查看现有集合并将每个项目添加到结果列表(如果满足某些条件)来创建一组项目。我想知道是否有更有效的方法使用一些 Google Guava 库来完成这项任务。算法如下

    final List<String> matchingItems = new ArrayList<>();
for (final String li : getItems()) {
if (li.length() > 5) {
matchingItems.add(li);
}
}
return matchingItems;

最佳答案

没有比您的方式更有效的编写 for 循环的方法了[1]

但是您可以使用 Guava 或 Java 8 以多种方式重写它。这些方式的效率会稍微降低。

使用 Guava

您可以使用Guava的FluentIterable类(class)。它是为您的用例而设计的。

请注意,您必须创建单独的 Predicate ,但当然,您可以随意重复使用它。

Predicate<String> hasLengthGreaterThanFive = new Predicate<String>() {
@Override public boolean apply(String str) {
return str.length() > 5;
}
};
List<String> matchingItems = FluentIterable.from(getItems())
.filter(hasLengthGreaterThanFive)
.toList();

使用 Java 8

Java 8 使前面的代码更具可读性,并且您不需要包含 Guava。

List<String> matchingItems = getItems().stream()
.filter(s -> s.length() > 5)
.collect(Collectors.toList());
<小时/>

1:禁止其他一些byte-code relevant optimizations .

关于java - Guava 函数根据对列表中每个项目的应用条件将项目添加到结果集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147502/

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