java - 循环java 8时从列表中返回对象

标签 java foreach java-stream

是否有一些直接的方法可以从映射到我们传递的条件的列表中返回对象。

例如:

public enum CarType {
    TOYOTA,
    NISSAN,
    UNKNOWN;

    public static CarType getByName(String name) {
        for (CarType carType : values()) {
            if (carType.name().equals(name)) {
                return carType;
            }
        }
        return UNKNOWN;
    }
}

Java 8 下面的方法和我使用的 for 循环是否支持其他方法。

public static CarType getByName(String name) {
    for (CarType carType : values()) {
        if (carType.name().equals(name)) {
            return carType;
        }
    }
    return UNKNOWN;
}

最佳答案

类似 findFirst 的东西和 orElse作为:

return Arrays.stream(values())
               .filter(carType -> carType.name().equals(name))
               .findFirst().orElse(CarType.UNKNOWN);

关于java - 循环java 8时从列表中返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47277500/

相关文章:

java - JaCoCo 和私有(private)默认构造函数的遗漏

r - R中数据帧的并行处理

java - 对于打印列表时的每个错误

java - 成对操作给定的 Java 流

java - 如果值为 null,则从 Java 流中过滤值

java - ’字符在 jdbc 中被转换为’

java - 移动速度不同?

java-8 - 是否可以在 Java8 流中重写此类代码?

java - 如何获取多个选择值

JAVA Foreach 流式传输