Java Eclipse显示视图并检查列表是否包含具有某些属性的对象
我有Java Eclipse显示视图并检查列表是否包含具有某些属性的对象,java,eclipse,Java,Eclipse,我有 类ComplexObject{ 复数(){} 公共字符串优先; 公共字符串第二; } List AllObject=fillListWithSomeData(); 在“显示”视图中是否有某种方法可以检查allObjects列表是否包含字段首先设置为“foobar”的对象?我想您需要这个: Class ComplexObject { Complex() {} public String first; public String second; }
类ComplexObject{
复数(){}
公共字符串优先;
公共字符串第二;
}
List AllObject=fillListWithSomeData();
在“显示”视图中是否有某种方法可以检查allObjects列表是否包含字段首先设置为“foobar”的对象?我想您需要这个:
Class ComplexObject {
Complex() {}
public String first;
public String second;
}
List<ComplexObject> allObjects = fillListWithSomeData();
我想你需要这个:
Class ComplexObject {
Complex() {}
public String first;
public String second;
}
List<ComplexObject> allObjects = fillListWithSomeData();
除非在使用
first
字段的ComplexObject
类中实现了equals()
和hashCode()
方法,否则无法执行
否则,您唯一的选择是遍历列表并对字段值进行比较。除非您在
ComplexObject
类中使用first
字段实现了equals()
和hashCode()
方法,否则您不能
否则,您唯一的选择是遍历列表并对字段值进行比较。以下是一个非常通用的解决方案,适用于任何类型和任何类型的比较:
for (ComplexObject obj : allObjects)
if (obj.first.equals("foobar")) {
//we have found one
}
publicstaticboolean容器相似(T-to-compare,List-to-search,Comparator-comp){
对于(T项:toSearch){
如果(组件比较(toCompare,item)==0)
返回true;
}
返回false;
}
您可以这样使用它:
public static <T> boolean containsSimilar(T toCompare, List<T> toSearch, Comparator<T> comp) {
for (T item: toSearch) {
if (comp.compare(toCompare, item) == 0)
return true;
}
return false;
}
boolean contains=containsSimular(查找、列出对象、,
新比较器(){
公共整数比较(ComplexObject 1,ComplexObject 2){
//你的比较逻辑在这里
}
公共布尔等于(对象o){}
});
其中,
查找
是一个ComplexObject,其属性设置为您想要查找的内容,列表对象
是一个ComplexObject列表。这里是一个非常通用的解决方案,适用于任何类型和任何类型的比较:
for (ComplexObject obj : allObjects)
if (obj.first.equals("foobar")) {
//we have found one
}
publicstaticboolean容器相似(T-to-compare,List-to-search,Comparator-comp){
对于(T项:toSearch){
如果(组件比较(toCompare,item)==0)
返回true;
}
返回false;
}
您可以这样使用它:
public static <T> boolean containsSimilar(T toCompare, List<T> toSearch, Comparator<T> comp) {
for (T item: toSearch) {
if (comp.compare(toCompare, item) == 0)
return true;
}
return false;
}
boolean contains=containsSimular(查找、列出对象、,
新比较器(){
公共整数比较(ComplexObject 1,ComplexObject 2){
//你的比较逻辑在这里
}
公共布尔等于(对象o){}
});
其中,lookingFor
是一个ComplexObject,其属性设置为要查找的内容,listofObject
是一个ComplexObject列表