LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ?

Hallo :)

ich arbeite grad mit Listen, genauer gesagt zweidimensionalen Listen. Die haben auch ziemlich viele Elemente. Zum Füllen der Listen (mittels .add) benutze ich LinkedList<LinkedList<String>>, da dies schneller sein soll als mit ArrayList.

Zum Abrufen/Editieren ist ja nun aber eine ArrayList schneller/besser, da die LinkedList bei .get alle vorherigen Elemente durchgehen muss, da sie nur die Nachbarelemente "kennt".

Deshalb würde ich gern beide Listentypen benutzen, um von beiden die Vorteile zu nutzen und Nachteile zu umgehen. Nur die Konvertierung steht mir im Weg :D

Gibt es denn eigentlich noch eine andere Art, wie ich die Elemente einer Liste alle durchlaufen kann und gleichzeitig editieren kann?
Wenn ich
Java:
for (String item : ListeMitString> {
    if (item == "bla") {
        item = "blubb"
    }
}

benutze, funktioniert es ja nicht. Deshalb benutze ich zur Zeit eine "einfache" for-Schleife mit Zählvariable.

So viele Fragen, vielleicht hat ja jemand ein paar Tipps für mich :)

mfg Hans
 
S

SlaterB

Gast
> da dies schneller sein soll als mit ArrayList.
allein deinen Forum-Post zu formulieren kostet mehr Zeit, als du vielleicht im Leben mit LinkedList statt ArrayList einsparst,
wenn überhaupt etwas zu sparen ist..,
willst du nicht lieber gleich komplett auf ArrayList setzen?

ansonsten new ArrayList(andere Liste), bei Verschachtelung musst du in der Tat per Schleife die einzelnen Elemente austauschen,
die inneren ArrayList statt LinkedList ganz analog zu deiner zweiten Frage mit dem String

zu jener ist einerseits deine for-i-Schleife korrekt, als Tipp kann man ansonsten nur vorschlagen,
nicht String bzw. sonst ein zu ersetzendes Objekt X direkt einzufügen, sondern einen Container,
ein Objekt Y welches X enthält, dann kann Y gleichbleiben, X in Y ausgetauscht werden

der Aufwand kann freilich beträchtlich sein,
StringBuilder wäre ein Container, der auch beim Zusammenbau hilft,
List<List<String>>, worum es eh schon geht, auch hierzu denkbar, falls die innere Liste immer nur einen String enthält,
gegebenenfalls noch ne Stufe weiter List<List<List<String>>> ;)
 
Zuletzt bearbeitet von einem Moderator:
Hmm, dann hab ich das wohl überinterpretiert. Dann werd ich wohl alles auf ArrayList setzen.

Bleibt noch der Punkt 2 und deinem Tipp: den versteh ich nicht :p
Am praktischsten wäre es eben, wenn ich mit der for-Schleife (also ohne Zählvariable) nur eine Referenz/einen Pointer auf das Element bekommen könnte und keine lokale Kopie.
 
S

SlaterB

Gast
> nur eine Referenz/einen Pointer auf das Element bekommen könnte und keine lokale Kopie.

du bekommst schon das Originalobjekt, davon keine Kopie, um es der Wichtigkeit wegen nochmal zu betonen,

aber die Referenz ist eine eigenständige Variable, quasi eine Kopie der Referenz innerhalb der Liste, ja,
und dazu gibt es in Java keine Alternative, nein, weder bei Methodenaufrufen, noch bei Listendurchlauf, noch irgendwo

du hast keinen Zugriff auf die Referenz im internen Aufbau der Liste, darum geht es ja,
du musst schon set-Methoden usw. bemühen,

oder wie gesagt Indirektion selber bauen:
lasse die lokale Referenz + unabhängig davon die Referenz intern in der Liste unverändert auf ein Objekt Y verweisen,
diesen Wrapper darfs du aber inhaltlich verändern,
wenn dort ein neues X ersetzt wird, wirkt sich das auf die Liste genauso aus, denn die verlinkt ja auch auf Y
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Das mit der Geschwindigkeit würde ich so pauschal nicht sagen... Je nachdem, welche Operationen man durchführt, kann da schon ein deutlicher Geschwindigkeitsunterschied sein. Dass man aus diesem Grund Listen in verschiedene Typen konvertiert ist... etwas suspekt (auch wenn in der Collections-API selbst noch VIEEEL schlimmere Dinge gemacht werden ;) ) und man sollte es vermeiden, wenn man nicht wirklich einen eindeutigen Bottleneck identifiziert hat, und die Konvertierung einen echten Vorteil bringt.

Dewegen: Was willst du modellieren? Was für Operationen wilslt du darauf ausführen? Was ist wirklich das langsame daran? (Ohne Spekulation ~"Ich habe mal gehört X sei langsamer als Y" ;) ). Der Struktur nach ("2D-Liste") klingt das, als könnte man da auch ganz andere Ansätze verwenden...
 
Eigentlich will ich "nur" aus mehreren txt-Dateien eine Excel-Datei erstellen (Apache POI HSSF). Also habe ich für jedes Sheet dann eine 2d-Liste, also eine Matrix. In den einzelnen Zellen sind aber "Formatierungsschlüssel" eingebaut, z.B. "bla-<f003>" da muss "-<f003>" abgeschnitten werden und die Zelle/Zeile in der Farbe 3 eingefärbt werden. Deshalb muss ich über jede Zelle iterieren bzw. diese auslesen/prüfen und aber gleichzeitig verändern können.

Also eigentlich keine große Algorithmenzauberei, jedoch können es ganz schön viele Daten werden, aber eben nur Strings. Die xls-Dateien am Ende sind zwischen 10 und 20 MB groß.
 

Marco13

Top Contributor
Sowas wie
Java:
interface Sheet {
    int getNumRows();
    int getNumColumns();
    void set(int r, int c, String value);
    String get(int r, int c);
}
könnte man in betracht ziehen... Das kann man implementieren, wie man will ... anhand der bisherigen Beschreibung würde da auch nichts gegen einen 2D-Array sprechen :bahnhof:
 
Naja die ArrayList nutze ich, da ich vorher nicht weiß, wieviele Zeilen die txt hat. Gibt es denn zwischen ArrayList und Array überhaupt nennenswerte Unterschiede, da hinter der ArrayList ja doch auch nur ein Array steckt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
I In Java geschriebene Software nach Mac OS portieren Allgemeine Java-Themen 7
M TicTacToe Sound nach jedem Zug Allgemeine Java-Themen 21
I HTML / XHTML Seite nach Excel exportieren. Suche Lib Allgemeine Java-Themen 12
J4n5chmiddi Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java Allgemeine Java-Themen 12
pkm Frage nach eventuellem syntaktischen Zucker bei der Konkatenation von ArrayLists Allgemeine Java-Themen 4
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
H Collections Aktuellen Index generell und nach Sortierung ausgeben Allgemeine Java-Themen 6
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
S Wörterliste nach Wörtern mit u durchsuchen und diese auf der Konsole ausgeben lassen Allgemeine Java-Themen 33
W Pdf verwerfen, weil Checkbox nach Unterschrift geaendert wurde Allgemeine Java-Themen 5
G File not found - nach dem Kompilieren Allgemeine Java-Themen 6
S Swing Speichern nach Button-Klick Allgemeine Java-Themen 5
Meeresgott Effizientester Weg um nach der Value einer verschachtelten Map aufzulösen Allgemeine Java-Themen 5
M Java 8 nach Java 6 konvertieren Allgemeine Java-Themen 7
N Neustarten des Codes nach der Fehlermeldung Allgemeine Java-Themen 17
L Nach dem Login // Java Desktop Software Allgemeine Java-Themen 7
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J Jasper Reports - Compilerproblem nach Umstellung von Groovy auf Java Allgemeine Java-Themen 7
looparda Liste filtern nach Prädikaten verschiedener Typen Allgemeine Java-Themen 3
S Apache POI Filtern nach bestimmten Kriterium Allgemeine Java-Themen 1
L Korrektur nach der Berechnung vornehmen, aber wie? Allgemeine Java-Themen 11
C Config nach bestimmten Wertdurchsuchen. Allgemeine Java-Themen 2
B Suche nach einem Testprogramm für meine BA Allgemeine Java-Themen 0
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
G Eclipse Java findet MySQL Driver nach export nicht mehr Allgemeine Java-Themen 2
H IDEA IntelliJ Java Mail funktioniert nach Export nicht mehr! Allgemeine Java-Themen 1
F Zurnung nach Buchstaben und deren Prüfung Allgemeine Java-Themen 9
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
MiMa Sortieren nach Stellenangaben Allgemeine Java-Themen 7
L Erste Schritte Liste von Datums filter nach Monate Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
J Ausgabe von Links nach Rechts ausgeben? Allgemeine Java-Themen 2
K JAR Datei Corrupt nach Kopieren Allgemeine Java-Themen 4
The Pi 2D-Grafik Tic Tac Toe nach Gewinn rot Allgemeine Java-Themen 1
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
C PDFBox: Nach RegEx ganze Zeile Allgemeine Java-Themen 4
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
L Suche nach CalDav Server API Allgemeine Java-Themen 0
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
T Textarea nach nur 1 wort durchsuchen Allgemeine Java-Themen 3
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
C Eclipse OutOfMemory nach dem exportieren Allgemeine Java-Themen 4
D Erste Schritte Array von einer forschleife nach ausserhalb trasferieren Allgemeine Java-Themen 3
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
B Bild aus Jar kann nach Export nicht mehr gefunden werden Allgemeine Java-Themen 13
B Umgebungsvariable Anpassen der Umgebungsvariablen nach Java-Update ? Allgemeine Java-Themen 14
H jid3lib nach schreiben keine Tags im Folder angezeigt Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
J Programm meldet "Keine Rückmeldung" nach Verbindung zum Server Allgemeine Java-Themen 4
E Java wird beendet nach paar Sekunden Allgemeine Java-Themen 14
H Best Practice setHeader in jsp nach RequestDispatcher.include Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
M .jar nach Datei prüfen Allgemeine Java-Themen 2
F String nach Schlüsselwörtern durchsuchen und ganze Zeile ausgeben Allgemeine Java-Themen 4
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1
J Swing Cursor.WAIT funktioniert nicht nach JFileChooser Allgemeine Java-Themen 1
VfL_Freak JDK installieren Problem mit Erstellungspfad nach Wechsel von Java7 auf Java8 Allgemeine Java-Themen 1
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
thet1983 nach teilen eines Dateinamens suchen Allgemeine Java-Themen 6
F JLabel nach 5 Sekunden wieder leeren Allgemeine Java-Themen 7
M Fasta nach Mustern durchsuchen dauert zu lange Allgemeine Java-Themen 2
J Bilder halb in falscher Farbe nach kopieren aus Web Allgemeine Java-Themen 3
Thallius Neuen Prozess starten, der auch nach Beedingung des Starter-Prozesses weiterläuft? Allgemeine Java-Themen 5
T Nach Java Update: Jar Datein öffnen sich nicht mehr mit doppelklick Allgemeine Java-Themen 3
S Start des zweiten Threads erst nach Beenden des ersten Threads Allgemeine Java-Themen 13
A Funktionen aufrufen nach Schema x Allgemeine Java-Themen 2
G JavaFX Problem nach Update auf Java 8 Allgemeine Java-Themen 0
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
F E-Mail aus JAVA senden nach Umstellung auf Netbean 7.4 mit Java 7U45 nicht mehr möglich Allgemeine Java-Themen 4
J Ausgabe nach Excel Allgemeine Java-Themen 1
K PCM_UNSIGNED nach PCM_SIGNED Allgemeine Java-Themen 0
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
L Strings nach sortiertem String zurück ordnen Allgemeine Java-Themen 0
A Java - Suche nach Datensatz mit DateChooser Allgemeine Java-Themen 0
L Strings nach gleichem Muster ordnen Allgemeine Java-Themen 4
F Nach Export wird PDF Datei nicht mehr gefunden Allgemeine Java-Themen 0
K Sortieren nach Vorgabe Allgemeine Java-Themen 6
G nervendes Problem mit unterschieden zwischen Javax64 und x86 | je nach Programmbedarf beides nötig Allgemeine Java-Themen 2
L nach form submit textfeld an java übergeben? Allgemeine Java-Themen 2
L iText PDF Form-Felder werden nach Bearbeitung mit iText nicht mehr richtig erkannt. Allgemeine Java-Themen 2
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben