gpt4 book ai didi

java - Guava 中 Iterables.tryFind 和 FluentIterable.firstMatch 的区别

转载 作者:行者123 更新时间:2023-12-03 06:24:45 25 4
gpt4 key购买 nike

有什么区别吗?

MyObject myWantedObj = Iterables.tryFind(myListOfObjects, new Predicate<MyObject>() {
public boolean apply(MyObject myObj) {
return myObj.getSomeAttribute().equals(someFinalVariable);
}
}).orNull();

MyObject myWantedObj = FluentIterable.from(myListOfObjects).firstMatch(new Predicate<MyObject>() {
public boolean apply(MyObject myObj) {
return myObj.getSomeAttribute().equals(someFinalVariable);
}
}).orNull();

<强> Iterables.tryFind FluentIterable.firstMatch Javadoc 等于:

Returns an Optional containing the first element in iterable that satisfies the given predicate, if such an element exists.

我错过了什么吗?

最佳答案

Iterables.tryFind()FluentIterable.firstMatch() 早了很多。如果您只执行单个操作(如您的示例中所示),那么使用哪个并不重要。如果我们先创建 FluentIterable ,我们可能永远不会创建 Iterables 类(事后看来是 20/20)。

当您将多个函数类型步骤链接在一起时,FluentIterable 的力量就显现出来了。例如:

   FluentIterable
.from(database.getClientList())
.filter(activeInLastMonth())
.transform(Functions.toStringFunction())
.limit(10)
.toList();

关于java - Guava 中 Iterables.tryFind 和 FluentIterable.firstMatch 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226505/

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