Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Enumeration

Empfohlene Antworten

Veröffentlicht

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?

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

  • Autor

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)

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

  • Autor

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!

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

  • Autor

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.