Wie man in Java auf gute Weise Objektpaare in derselben Liste findet
Ich habe einArrayList
mit verschiedenen Objekten. Ich versuche, in der gleichen Liste Objektpaare auf der Grundlage einer Bedingung zu suchen. Wenn ich die richtigen Paare gefunden habe, erstelle ich ein neues Objekt und füge es einer neuen Liste hinzu. Ich möchte jedoch vermeiden, ein Objektpaar zu erstellen, wenn objectA mit objectB und objectB mit objectA gepaart werden.
Ich habe bis jetzt keinen guten Weg gefunden, das zu tun.
Ideen, die ich versucht habe2 für Schleifen
for(Object objectA : objectList){
for(Object objectB : objectList){
if(condition){
// create new object
// add to list
}
}
}
Problem: Ich muss die bereits übereinstimmenden Paare irgendwie markieren, da sonst zwei Objekte für dasselbe Paar erstellt werden, die ich vermeiden möchte. Es funktioniert, ist aber wahrscheinlich nicht die beste Lösung?
Iteratoren
Wie die Version mit zwei Forloops habe ich einen Iterator verwendet und das bereits übereinstimmende Objektpaar aus der Liste entfernt. Funktioniert, scheint aber nicht so gut zu sein?
Java8 forEach & removeIf
objectList.stream().forEach(posA -> {
objectList.removeIf(posB -> condition);
});
Problem: Wann würde ich mein Objektpaar Objekt erstellen ...?
FragWas ist die beste Idee - oder gibt es eine bessere Lösung, die ich nicht bekommen habe?