Liste oder Array filtern

Status
Nicht offen für weitere Antworten.

Se7enDays

Mitglied
Hallo,

ich habe hier eine Liste oder auch ein Array von Objekten, die ich nun nach bestimmten Kriterien filtern will. Die Arrays und Collections Klassen bieten hierzu keine Hilfestellung. Ich möchte einerseits über Verweise filtern können (also kein Objekt befindet sich mehrfach in der Liste). Andereseits möchte ich auch über Attribute der einzelnen Objekte filtern können (also keine zwei Objekte mit dem selben Wert im Attribut x). Wie kann man sowas am elegantesten implementieren?
 
in einer arraylist mit contains( Object o )... z.B:

Code:
ArrayList<String> list = new ArrayList<String>();
list.add( "Hans" );
list.add( "Peter" );
list.add( "Udo" );

boolean b1 = list.contains( "Hans" ); // true weil in list "Hans" enthalten ist
boolean b2 = list.contains( "Andre" ); // false weil in list "Andre" nicht enthalten ist
 
Schau auch mal hier
http://www.java-forum.org/de/viewtopic.php?p=391425
Ansonsten ... sicherzustellen, dass keine zwei Objekte mit gleichen fields enthalten sind, wäre etwas aufwändiger - brute force wäre hier eine O(n²) Lösung wie
Code:
for int i=0; i<list.size(); i++)
{
    for int j=i+1; j<list.size(); j++)
    {
        if (list.get(i).getValue() == list.get(j).getValue()) 
        {
            list.remove(j);
            j--;
            i--;
        }
    }
}
Falls es zeitkritisch ist, kann man sich da vielleicht was besseres überlegen...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben