2011-08-04 11 views
1

を持つオブジェクトが含まれている場合、私はEclipseの画面表示とチェックリストには、いくつかのプロパティ

Class ComplexObject { 
     Complex() {} 
     public String first; 
     public String second; 
} 

List<ComplexObject> allObjects = fillListWithSomeData(); 

を持ってallObjectsリストは、最初の「foobarに」に設定するフィールドを持つオブジェクトが含まれているかどうかを確認するための表示ビューのいくつかの方法はありますか?

答えて

1

私はあなたがこの必要な推測:あなたはfirstフィールドを使用してComplexObjectクラスで実装equals()hashCode()方法を持っていない限り、することはできません

for (ComplexObject obj : allObjects) 
    if (obj.first.equals("foobar")) { 
     //we have found one 
    } 
0

を。

唯一の選択肢は、リストを反復してフィールド値を比較することです。ここで

0

は、任意のタイプと比較任意のタイプのための非常に一般的なソリューションです:

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; 
} 

あなたがそうのようにそれを使用します。

lookingForがに設定されたプロパティを持つComplexObjectある
boolean contains = containsSimilar(lookingFOr, listOfObjects, 
    new Comparator<ComplexObject>() { 
     public int compare(ComplexObject one, ComplexObject two) { 
     // your compare logic here 
     } 
     public boolean equals(Object o) { } 
}); 

何を探したいのですか?listOfObjectsはComplexObjectのリストです。

関連する問題