0
我确实有一个简单的Object,它可以通过String来标识。这些标识符是唯一的。使用lambda找到LinkedList中的元素
public class SomeObject
{
private String identifier;
public String getIdentifier() {
return this.identifier;
}
}
我现在有另一个类,其保持这些简单对象列表,并且具有返回,如果它在列表中存在所提供的标识符相匹配的对象的方法。
public class SomeBiggerClass
{
LinkedList<SomeObject> allObjects;
public SomeObject getObject(String identifier)
{
if (this.allObjects.stream().anyMatch(object -> object.getIdentifier() == identifier)) {
return this.allObjects.stream().filter(object -> object.getIdentifier() == identifier).findAny().get();
}
else {
return null;
}
}
}
然而即使字符串完全匹配,它会返回将AnyMatch()部分假,并会抛出异常的第二拉姆达。我可以在c#和linq中做到这一点,但是我有点迷失在这些java lambda中。任何关于如何做到这一点的想法都是可以理解的。
用户匹配= allObjects.stream()滤波器((对象) - > object.getIdentifier()等于(标识符)。)findAny()得到();。 试试这个 –