使用 lambda/callback 从列表中获取元素 - 相当于 Array.prototype.find() 的 JS

rya*_*e28 2 javascript java list arraylist

我想使用回调从 Java 列表中获取一个元素(不是索引)。

在 JavaScript 中,有一个Array.prototype.find方法可以做到这一点。例如:

let match = [1, 2, 3, 4, 5].find((num) => num === 3);
console.log(match); // 3
Run Code Online (Sandbox Code Playgroud)

Java 有等效的吗?

Arv*_*ash 5

您可以使用 Java Stream API 来执行此操作。

import java.util.List;

public class Main {
    public static void main(String[] args) {
        int x = List.of(10, 20, 30, 40, 50).stream().filter(n -> (n == 30)).findAny().orElse(-1);
        System.out.println(x);
        int y = List.of(10, 20, 30, 40, 50).stream().filter(n -> (n == 3)).findAny().orElse(-1);
        System.out.println(y);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

30
-1
Run Code Online (Sandbox Code Playgroud)

根据您的要求使用findAny() 或 findFirst() 。