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()得到();。 試試這個 –