Vergleich von TreeSet<HashSet>^2

microsystem

Mitglied
Hallo,

ich stehe gerade vor folgendem Problem:
Ich habe zwei TreeSets, die jeweils HashSets beinhalten. Nun muss ich abhängig davon, ob das erste Element der jeweiligen HashSets gemäß selbst-definierter Kriterien dem Gegenstück im anderen HashSet entspricht weitere Schritte unternehmen.

Derzeit ist das Ganze klassisch durch zwei in einander geschachtelte for-Schleifen realisiert.

In Pseudo-Notation sieht das ungefähr so aus:
Java:
for(HashSet h1 : TreeSet t1)
{
   for(HashSet h2 : TreeSet t2)
   {
      if(kriteriumErfuellt(h1.get(0), h2.get(0)))
         doSomething();
   }
}

Mich würde jetzt interessieren, ob es eine effizientere Art der Implementierung für diesen Fall gibt.

Vielen Dank für Ratschläge.
 
EDIT: Ach der HashSets, sorry, dann ist das hier natülich Unfug ... 😳
*sich mehr Koffein reinzieht*

Wenn es nur um das jeweils erste Element geht, könnte man auch sowas machen wie
Java:
if (beide treesets enthalten >= 1 elemente)
{
    HashSet h0 = treeSet0.iterator().next();
    HashSet h1 = treeSet1.iterator().next();
    if (joDasPasst(h0,h1)) naDannMachAberMal();
}
 
Zuletzt bearbeitet:
verwende doch ein Set, mit Hash oder Tree 😉

das geht aber wirklich nur, wenn jedes Element für sich betrachtet und auf einen konkreten Vergleichswert reduziert werden kann,
wenn du immer zwei zusammen vergleichen musst, dann vielleicht nicht möglich

evtl. gibt es Mittel-Versionen, Graphenstruktur, Gruppierungen usw., ohne konkrete Informationen kaum zu sagen
 
also ich bezog mich da auf zusätzliche Strukturen, was aktuell ist muss damit nix zu tun haben, bei
Java:
for(MyObject m1 : List l1)
{
   for(MyObject m2 : List l2)
   {
      if(kriteriumErfuellt(m1.get(0), m2.get(0)))
         doSomething();
   }
}
wäre der Vorschlag derselbe, nur nicht so lustig da nicht schon Sets in Verwendung sind 😉
 
Als Comparator dienen mir Vergleiche auf den HashSet-Elementen.

@Marco13: Leider scheine ich Deinen Vorschlag nicht ganz zu verstehen. Falls ich derartig über die Sets iteriere, würde doch nur die HashSets an der gleichen Position in den TreeSets verglichen werden. Da allerdings durch den Comparator auch die Elemente in der Umgebung des "Iterations-Zeigers" interessant sein können, würde ich diese dadurch "übersehen".

Inhaltlich gesehen gehören die Elemente der HashSets zusammen, eine Vermischung der TreeSets und HashSet (wenn ich euren Vorschlag recht verstehe) , ist dadurch nicht möglich.
 
in meinen Postings steht alles wissenswerte, mehr wird nicht kommen behaupt ich einfach 😉
sag was dazu oder das wars dann
 

Zurück
Oben