Java中存在来自Smalltalk的Detect方法吗?

use*_*560 3 java smalltalk java-8

detect在Java 8中搜索该方法.我曾经在Smalltalk中使用它,但Java似乎没有它.Smalltalk的detect方法根据表达式的结果找到第一个元素.例如:

Listnumbers.detect[number->number>4]
Run Code Online (Sandbox Code Playgroud)

如果存在大于4的元素,则返回该元素.

Gio*_*tta 9

在java 8中,您可以使用流API:

Collection<T> collection = ... //

Optional<T> optionalFirst = collection.stream()
                              .filter(e -> /* some predicate */)
                              .findFirst();
Run Code Online (Sandbox Code Playgroud)

这将找到集合中第一个满足谓词的元素(如果存在).