Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse显示视图并检查列表是否包含具有某些属性的对象_Java_Eclipse - Fatal编程技术网

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列表