Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich hol mir aus nem Hashtable mit h.elements() eine Enumeration.

               Hashtable t = new NABHashtable("","PDM400","MGRP","Z",tmpWAGR+" "+tmpFOGR);

                Enumeration enum = t.elements();

                tmpTable = new NPPageTable();

                while(enum.hasMoreElements())   {


                    tmpTableRecord = new NPPageTableRecord();

                    tmpTable.addRecord(tmpTableRecord);


                    String mgrp = (String)enum.nextElement();

                    // WAGR

                    tmpField = new NPPageField("", nabjPruefwert.getNABWert("","PDM400","MGRP","",mgrp));

                    tmpTableRecord.addElement(1, "T_MGRP", tmpField);

                    tmpField = new NPPageField("", mgrp);

                    tmpTableRecord.addElement(1, "MGRP", tmpField);

                } 

                tmpPageData.addElement("S0222" ,1, "T002", tmpTable);

Ich will mir die einzelenen PageFields wieder holen, aber sie stehen in der genau umgekehrten Reihenfolge wie im Hashtable in meinem TableRecord.

Kann mir einer verraten warum?

Geschrieben

Hi,

ich verstehe zwar nicht ganz was du da machst, aber eine Hashtable ist nicht sortiert und behält auch keine Reihenfolge.

Sie ist nur dazu da, über einen key ein Object zu liefern.

Gruß Jaraz

Geschrieben

Aber in meinem Hashtable stehen die Objekte noch in der Richtigen

Reihenfolge drinnen.

Aber in der Enumeration nicht!

Kann es sein, dass der Hashtable ein Stapel ist, den

die Enumeration von oben nach unten aufnimmt?

Ups: verklickt... (Jaraz)

Geschrieben
Aber in meinem Hashtable stehen die Objekte noch in der Richtigen

Reihenfolge drinnen.

Zufall, da du alle Objekte direkt vor dem einfügen erzeugst und sie somit einen aufsteigenen Hashcode haben.

Eine Hashtable ist UNSORTIERT.

Alles was eine sortierung oder Reihenfolge benötigt musst du mit anderen Mitteln realisieren. (TreeMap, ArrayList, Vector....)

Gruß Jaraz

Geschrieben

Ich fülle meinen Hashtable aber aus einem Vector,

Dadurch ist der Hashtable auf jedenfall in der

richtigen Reihenfolge belegt, wenn ich dich richtig verstehe.

Aber das Enumeration-Objekt liest den Hashtable von oben

nach unten!

Geschrieben
Original geschrieben von Krain

Dadurch ist der Hashtable auf jedenfall in der

richtigen Reihenfolge belegt, wenn ich dich richtig verstehe.

Nein, nein, nein!!!!!!!!

Die Reihenfolge wie Elemente in einem Hashtable abgelegt werden ist ZUFÄLLIG

(nicht wirklich, aber man sollte es so betrachten). Einen Hashtable kannst

Du deshalb nur verwenden, wenn die Reihenfolge in der die Elemente

gespeichert werden völlig egal ist.

Wenn Du eine Datenstruktur benötigst, die eine bestimmte Reihenfolge

garantiert, dann musst Du eine Liste wie z.B. LinkedList oder ArrayList

nehmen.

Gruß Jaraz

Geschrieben

Okay - sorry

Ich verstehe schon.

Dann wird wohl das auch nicht funktionieren um es sortiert zu bekommen:

String[] enum =(String[]) hashtable.values().toArray();

Hab es anders gelöst:

Zur selben Zeit, wie ich den Hashtable fülle, fülle ich mir auch einen

Vector. Diesen kann ich mir dann aus dem Hashtable-Objekt zurückgeben

lassen.

Trotzdem danke für deine Hilfe.

Und entschuldige meine nervenaufreibende Unverständnis

Geschrieben
Zur selben Zeit, wie ich den Hashtable fülle, fülle ich mir auch einen

Vector. Diesen kann ich mir dann aus dem Hashtable-Objekt zurückgeben

lassen.

Wenn du nicht unbedingt eine Hashtable benötigst (weil im 1.1er Applet) sondern auch die neuere Map verwenden kannst dann solltest du dir mal die LinkedHashMap ansehen, die macht nämlich genau das was du willst.

Die Einträge bleiben schnell über eine interne HashMap erreichbar und beim Iterieren mit einem Iterator bekommst du die gleichen Reihenfolge, in der die Elemente in die Map eingefügt wurden.

Ciao

Christian

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...