Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten

Stefan Dreis

Mitglied
Hat einer von euch schon Performace Erfahrung gemacht bzgl. eines Arrays mit 2 Werten?

also

Code:
    HashMap<String, String>

oder

Code:
    class Value2 {
            public  String string1;
            public  String string2;
     }

    List<Value2>

welches würdet ihr nehmen, wenn eine Liste schnell durchlaufen werden soll die über 2 Werte verfügt? (Hierbei kommt mir es aufs schnelle durchlaufen an und nicht so sehr, wofür Hashmap eigentlich da ist, dem assoziativen Zugriff) Oder sind beide Werte bezüglich schnellem Durchlaufs identisch? Oder gibt es sogar eine 3. Möglichkeit, die besser ist?
 

faetzminator

Gesperrter Benutzer
Wenn du nur durchiterieren musst, würde ich [c]List<Foo>[/c] verwenden. Als Impl bevorzuge ich quasi immer [c]ArrayList[/c]. Wenn du ab und zu noch per Key den Zugriff haben willst, verwende [c]Map<Ident, Foo>[/c]
 
G

Gast2

Gast
Keine Ahnung was davon schneller ist. Aber wenn du ein Objekt mit zwei Werten hast und davon eine Liste brauchst, dann wärs doch ziemlich dämlich die erste Variante zu nehmen oder nicht ???:L
 

XHelp

Top Contributor
Von wievielen Elementen sprechen wir hier?
Code:
List
kann man nicht mit
Code:
HashMap
vergleichen, das eine ist ein Interface einer List und das andere eine konkrete Implementierung einer Map. Jede Implementierung (egal ob List oder Map) hat ihre Vor- und Nachteile. Du kannst sogar einfache Arrays nehmen.
Jedoch solltest du dich zunächst erstmal fragen: ist ein Gewinn von 1ms auf 100000000000 Elemente wirklich von einer so großen Bedeutung?
 

Stefan Dreis

Mitglied
Ok, danke an allen soweit. Ich will das ganze jetzt noch dahin erweitern das in

Code:
    class Item {
            public String string1;
            public String string2;
    }

    class MyList extends ArrayList<Item> {
             ...
    }

die Liste MyList informiert wird das sich der Eintrag in eines Items geändert hat. Ich bin mir nicht sicher ob dieses mit dem Observer Pattern zu tun hat. Ich assoziere das zurzeit damit, ich selber habe mit diesem Pattern noch keine Erfahrung, vielleicht liege ich deshalb auch im Augenblick falsh. Ich habe mir das Pattern in "Java ist auch eine Insel" mir mal angeschaut. Aber nicht so ganz verstanden.

Wäre nett wenn mir hier einer weiterhelfen könnte.
 

XHelp

Top Contributor
So wird das wohl kaum klappen, da die Felder public sind und du keine Kontrolle darüber hast wer und dann diese ändern kann.
Aber wenn du dein Vorhaben (wozu auch immer) umsetzen willst, dann musst du es genau so wie beschrieben machen: wenn ein Eintrag geändert wurde, musst du die Liste informieren.
 
G

Gast2

Gast
Hm, wieso genau willst du ArrayList erweitern? Das ist in der Regel nicht nötig.

die Liste MyList informiert wird das sich der Eintrag in eines Items geändert hat.
Das versteh ich nicht. Kannst du das nochmal genauer erklären?
 
N

nillehammer

Gast
Nochmal kurz wie realisiert man am besten in Java eine Liste mit Einträgen, die die Liste informiert, wenn sich ein Eintrag in der Liste ändert.
Meinst Du damit, dass sich das Attribut eines Eintrags ändert? Weil die Einträge selbst änderst Du ja direkt in der Liste.
 

Stefan Dreis

Mitglied
Meinst Du damit, dass sich das Attribut eines Eintrags ändert? Weil die Einträge selbst änderst Du ja direkt in der Liste.

Nein ich meine

Code:
    class Item {
            private String string1;
            private String string2;
    }

    class MyList extends ArrayList<Item> {
             ...
    }

string1 oder string2 von der Klasse Item ändert sich dann soll MyList informiert werden z.B. über eine Notification. Gibs hierfür eine Technik unter Java? Soweit ich es bis jetzt verstanden habe wird hierfür Observer eingesetzt. Leider habe ich diese Technik noch nicht ganz verstanden, oder liege ich hier mit Observer Pattern falsch?
 
N

nillehammer

Gast
Nein ich meine
[...]
string1 oder string2 von der Klasse Item ändert sich dann soll MyList informiert werden
Das sind doch die Attribute der Items, also doch! ;) Dafür ist das Observer-Pattern tatsächlich richtig. Schau Dir mal das Interface PropertyChangeListener an: PropertyChangeListener (Java Platform SE 6)

Deine List ist der PropertyChangeListener, Deine Items feuern PropertyChangeEvents (PropertyChangeEvent (Java Platform SE 6)). Der PropertyChangeSupport klebt das ganze zusammen. Das ganze ist Teil der Bean-Spez dort heißt sowas Bound-Properties. Hier ist das Tutorial dazu: Java Beans Tutorial, Pt. 4: Bound Properties
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Schnelles Potenzieren Java Basics - Anfänger-Themen 5
V Schnelles Potenzieren Java Basics - Anfänger-Themen 10
D schnelles durchsuchen von Dateien Java Basics - Anfänger-Themen 29
G Schnelles Auslesen von HashMaps unter JDK1.4.2 Java Basics - Anfänger-Themen 9
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
S Array X-mal durchlaufen und dann N-mal durchlaufen Java Basics - Anfänger-Themen 20
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
S Rekursives Durchlaufen eines Verzeichnisses - AccessDeniedException behandeln Java Basics - Anfänger-Themen 1
T Objekt-Arrays mit einer Schleife durchlaufen/ausgeben Java Basics - Anfänger-Themen 2
B Durchlaufen von Hashmap und Arraylist Java Basics - Anfänger-Themen 8
B OOP Liste durchlaufen Java Basics - Anfänger-Themen 12
G Mehrere If-else-Sätze der Reihe nach durchlaufen lassen Java Basics - Anfänger-Themen 2
C Laufzeitverhalten beim zeilenweise durchlaufen eines 2 dimensional array Java Basics - Anfänger-Themen 6
W If_Bedingung in statischer Methode beim zweiten Mal nicht durchlaufen Java Basics - Anfänger-Themen 14
L Klassen nacheinander durchlaufen? Java Basics - Anfänger-Themen 5
A do while Schleife wird 2 mal durchlaufen Java Basics - Anfänger-Themen 3
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
K Stammbaum durchlaufen (Iteration etc) Java Basics - Anfänger-Themen 9
D HashMap Keys durchlaufen Java Basics - Anfänger-Themen 2
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
A Array wird nicht durchlaufen Java Basics - Anfänger-Themen 10
A Treeset per For-Schleife durchlaufen Java Basics - Anfänger-Themen 2
K Objektbaum durchlaufen Java Basics - Anfänger-Themen 7
A Datentypen Iterator von hinten nach vorne durchlaufen Java Basics - Anfänger-Themen 4
M Zweidimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
C dynamische JTextFields durchlaufen Java Basics - Anfänger-Themen 5
J äußere for schleife wird nur einmal durchlaufen Java Basics - Anfänger-Themen 8
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
N Map Durchlaufen Java Basics - Anfänger-Themen 20
R Fehler in Rekursion (Unterordner durchlaufen) Java Basics - Anfänger-Themen 2
J Problem Arraylist durchlaufen Java Basics - Anfänger-Themen 7
K methode wird nur einmal korrekt durchlaufen Java Basics - Anfänger-Themen 4
B Array durchlaufen und sortieren Java Basics - Anfänger-Themen 9
N HashMap mit Iterator durchlaufen Java Basics - Anfänger-Themen 11
P Klassen-konstanten durchlaufen Java Basics - Anfänger-Themen 9
M Durchlaufen von Sets Java Basics - Anfänger-Themen 11
H Monat durchlaufen Java Basics - Anfänger-Themen 2
W Textfiles durchlaufen Java Basics - Anfänger-Themen 11
M Durchlaufen eines Verzeichnisbaums Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
F Objektnamen mit Schleife durchlaufen. Java Basics - Anfänger-Themen 10
G [Threads]: Mit mehreren Threads 1 ArrayList durchlaufen Java Basics - Anfänger-Themen 19
G HashMap durchlaufen und alle keys mit values ausgeben Java Basics - Anfänger-Themen 4
M Variablen einer Klasse zu durchlaufen möglich? Java Basics - Anfänger-Themen 5
K 2D Array spaltenweise durchlaufen Java Basics - Anfänger-Themen 4
G Baumstruktur rekursiv durchlaufen Java Basics - Anfänger-Themen 2
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M textboxen mit schleife durchlaufen. Java Basics - Anfänger-Themen 5
G Alle Componente eines JFrame durchlaufen Java Basics - Anfänger-Themen 3
P Schleife wird falsch durchlaufen!? Java Basics - Anfänger-Themen 3
H HashMap durchlaufen Java Basics - Anfänger-Themen 4
M Verzeichnisse rekursiv durchlaufen und dann RegEx Java Basics - Anfänger-Themen 6
J Durchlaufen von Vektoren Java Basics - Anfänger-Themen 14
G Array mit Schleife durchlaufen - guter Stil? Java Basics - Anfänger-Themen 20
K durchlaufen einer methode zählen Java Basics - Anfänger-Themen 15
M for-Schleife und Variablen automatisch durchlaufen Java Basics - Anfänger-Themen 2
W Baum durchlaufen Java Basics - Anfänger-Themen 3
M String mit For Each durchlaufen Java Basics - Anfänger-Themen 4
E liste rekursiv durchlaufen? Java Basics - Anfänger-Themen 3
S NameValuePair durchlaufen Java Basics - Anfänger-Themen 4
D Verzeichnisse rekursiv durchlaufen Java Basics - Anfänger-Themen 3
M HashMap durchlaufen: Was stimmt nicht? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben