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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...