按条件在ArrayList中查找元素并返回lambda或null

时间:2017-11-05 10:30:25

标签: java arraylist lambda

我有自定义对象的集合,我需要在我的函数中通过id属性找到正确的对象,并返回给他。如果找不到具有该id的元素,则返回null。你能帮我修改我的代码吗?这是它:

public MyObj find(long id) {
    return myList.stream()
            .filter(obj -> obj.getId() == id)
            .map(obj -> {
                return obj;
            })
            .findFirst()
            .orElse(null);

}

我有错误的地图调用错误,部分带地图功能的代码是灰色的。这有什么问题?感谢

1 个答案:

答案 0 :(得分:3)

没有理由包含map调用,因为它没有更改任何内容(它接受MyObj实例并返回相同的实例)。

public MyObj find(long id) {
    return myList.stream()
            .filter(obj -> obj.getId() == id)
            .findFirst()
            .orElse(null);

}