mehrdimensionale ArrayList ?

Status
Nicht offen für weitere Antworten.

Dudu

Mitglied
Hallo zusammen,

ich muss mehrere verschiedene Daten aus verschiedenen Dateien zur späteren Weiterverarbeitung einlesen. Zur Speicherung würde ich gerne eine "mehrdimensionale" ArrayList benutzen. Ich weiss, dass es sowas eigentlich nicht gibt, aber dass es möglich ist in einer ArrayList eine neue ArrayList zu erzeugen. Aber ich komme nicht drauf wie das gehen soll bzw. wie ich die Elemente ansprechen kann :cry:

Beispielcode bis jetzt:
Code:
public static void basicDataIn () {

// Initialisierung von ArrayList basisData mit 13, da maximal nur 13  zu
// vergeben sind, in diesen werden unbegrenzte ArrayList angelegt.
	basisData = new ArrayList [13];
...
	
	for ( int i = 0; i < assembly.length; i++) 
	{
		basisData[i] = new ArrayList();
		....		
		try {
	                ...
			while ((read_1 = readFile_1.readLine()) != null){
				basisData[i].add(new ArrayList());
				}
			}
			readFile.close();
		....
		}
	}
}

Im Prinzip muss ich in die ArrayList aus Zeile 11 mehrere ArrayListen erzeugen und diese mit Daten befüllen. Wie mache ich das nun?

Danke für Antworten im voraus.

Gruß,
Dudu
 

Dudu

Mitglied
OK, ich sehe ich muss mehr Informationen geben :wink:

Ich will ein eindimensionales Array mit der Größe 13, in welcher sich 13 ArrayList befinden. Kein Problem. In den jeweiligen ArrayList möchte/muss ich einen verschiedene Anzahl von neuen ArrayList unterbringen/erzeugen.
In etwa so:
basisData -> new ArrayList() -> new ArrayList()
-> new ArrayList()
-> new ArrayList()
....

Geht das?
 

mic_checker

Top Contributor
Klar - das geht schon.

Einfach die einzelnen ArrayList im Array richtig initialisieren und danach kannst du mit add die einzelnen ArrayList hinzufügen.

Ist zwar nicht sonderlich schön, sollte aber kein Problem darstellen.
 
W

wro

Gast
Hallo Dudu,

was macht man, wenn es in einer objektorientierten Entwicklungsumgebung etwas nicht gibt, das man gerne hätte?

Man bastelt es sich aus den vorhandenen Komponenten mit möglichst geringem Aufwand selber zusammen.

Ich würde an deiner Stelle das ganze in einer neuen Klasse kapseln. Innerhalb der Klasse kannst du dann genau wie du es vorhast eine ArrayList anlegen, die widerum ArrayListen enthält. Das du jetzt in der einen Dimension gerade mal 13 Elemente benötigst, würde ich mal vernachlässigen. Eine ArrayList kann fast beliebig viele Objekte aufnehmen. Auch die zweidimensionale ArrayListe sollte deshalb fast beliebig Objekte in beiden Richtungen indizieren können. Dadurch steigt der Grad der Wiederverwertung. Falls du mal wieder ein solches Objekt gebrauchen solltest, aber diesmal z.B. 24 x 454554 groß. Was machst du dann? Fängst du wieder von vorne an?

Wenn die Größe nicht bekannt ist, dann ist es natürlich schwierig bereits beim Erzeugen der 2-dimensionalen Liste bereits alle inneren ArrayListen anzulegen. Das ist aber auch gar nicht notwendig. Du mußt beim speichern lediglich prüfen, ob für diese Koordinaten bereits intern eine ArrayList exisitiert oder nicht. Falls nicht wird sie eben vorher angelegt. Falls was ausgelesen werden soll von einer Koordinate, die noch nie belegt wurde, wird der Wert null zurückgeliefert.


Gruß

Wolfgang
 

Dudu

Mitglied
Meinst Du es in etwa so?:
Code:
Array[] basisData = new Array[13];
basisData[i] = new ArrayList();
basisData[i].addArrayList();
basisData[i].addArrayList();
basisData[i].addArrayList();
...

Das hatte ich in etwa auch so vor. Aber wie kann ich jetzt zum Beispiel die Elemente der 3. ArrayList von basisData ansprechen zum Befüllen oder lesen? Momentan hätte ich ja nur 3 verschiedene ArrayList in basisData.

Wenn Du meinst, dass das Ganze nicht schön sei. Was würdest Du denn vorschlagen? Performance ist momentan nicht so wichtig.

[Edit] Arrg, habe den anderen Beitrag jetzt erst gesehen. Die Daten kommen aus einem SAP-System und es ist vorher nicht bekannt wieviele ArrayListen ich brauchen werde. Soll erst zur Laufzeit generiert und befüllt werden. Ich glaube, es ist fast besser, wenn ich mal ein paar Dateien anonymisiere und poste, damit es klar wird, was ich brauche.
 

mic_checker

Top Contributor
Dein Code ist hoffentlich nur Pseudo - Code ;)

Code:
List[] alArray = new List[13];

//ArrayLists aus Array erzeugen mit new ...

List newList = ....
alArray[0].add(newList);

List anotherList = ....
alArray[0].add(anotherList);

//etc. pp.

Hier befüllst du also die erste ArrayList mit weiteren ArrayList.

Darauf zugreifen kannst du ganz normal mit get(int index)

Code:
alArray[0].get(0);

um z.B. die erste ArrayList aus der ersten ArrayList des Arrays zu kriegen.

Um was anderes vorschlagen zu können müsste ich das Problem genau kennen, dann könnte man entscheiden ob eine andere Struktur, bzw. Herangehensweise nicht besser wäre.
 

Dudu

Mitglied
Yep, ist nur Pseudo-Code. Aber er sieht doch so schön aus :wink:
Werde es mal so probieren.

@all Danke für die schnelle und freundliche Hilfe zu der fortgeschrittenen Stunde.

Gruß,
Dudu
 

Dudu

Mitglied
Sorry, dass ich den Thread nochmal aufmachen muss.

Ich habe das ganze jetzt so geschrieben, wie es vorgeschlagen wurde. Klappt auch. Aber ich stehe jetzt vor dem Problem, dass wenn ich die einzelnen "inneren" ArrayLists auslesen will, immer das ganze ausgelesen wird.
Beispiel:
Code:
System.out.println alArray[0].get(0);

führt zu folgendem Ergebnis:
Code:
[Test, 0, 93, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113]
Ich müsste aber noch nun diese einzelne Elemente von .get(0) ansprechen können. Sowas wie
Code:
alArray[0].get(0).get(0);
gibt es ja leider nicht :(

Geht das überhaupt? Wenn nicht, muss ich es doch anders umsetzen.

Gruß,
Dudu
 

mic_checker

Top Contributor
Code:
((ArrayList)al.get(0)).get(0)

wenn du ArrayLists zur ArrayList hinzugefügt hast....

edit:
bin bei meinem code davon ausgegangen das du in der ArrayList al alles drin hast, bei dir musst du halt entsprechend anpassen mit Array...
 

Sky

Top Contributor
Dudu hat gesagt.:
Sowas wie
Code:
alArray[0].get(0).get(0);
gibt es ja leider nicht :(

Du warst ganz nah dran:
Code:
System.out.println(((List)alArray[0].get(0)).get(0));

Erklärung: List#get gibt ein Object zurück. Dass musst Du erst mal nach List casten.
 

Dudu

Mitglied
Danke für die schnelle Antwort. :D
War genau das was ich brauchte. Hatte es zwar auch mit Klammern probiert, aber auf das Casten wäre ich im Leben nicht gekommen.

Aber irgendwie bekomme ich immer mehr Zweifel, ob dies überhaupt so gut ist bei der Datenmenge, die später mit dem Programm durch die Gegend geschaufelt wird. Muss mich nochmal ans Reißbrett setzen und nachdenken... :###

Aber ihr habt mir auf jeden Fall den Tag gerettet :toll:

Gruß,
Dudu
 

mic_checker

Top Contributor
Weiß nicht ob ich es einfach überlesen hab, aber wofür brauchst du das ganze denn ?

Vielleicht könnten wir uns eine andere Lösung überlegen wenn wir genau wüssten wodrum es konkret geht.
 

Dudu

Mitglied
@ mic checker: Dein Angebot ist sehr freundlich, aber wenn ich das Ganze so erkläre, dass Ihr damit etwas anfangen und spezifischer helfen könntet, müsste ich mehrere Seiten füllen. Ist insgesamt ein Projekt/Aufgabe für ein Praktikum. Wenn man es kurz zusammenfassen möchte, geht es um Export (nicht Java) von Daten aus einem DataWarehouse und der versuchten Optimierung des bisherigen Datenmodells (in Java). Bevor jemand sagt, dass C/C++ besser dafür wäre, sage ich nur Anforderungskatalog :wink:
Da ich in Java erst eine Vorlesung (absolute Grundlagen) hatte, bin ich mehr auf schlaue Bücher, Internet und so hilfsbereite Menschen wie Ihr angewiesen.

Deshalb für die schon geleistete und wahrscheinlich noch kommenden Fragen meinerseits ein grosses DANKE :D

Gruß,
Dudu
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrdimensionale ArrayList - Zugriff über return Java Basics - Anfänger-Themen 2
G Mehrdimensionale ArrayList erstellen Java Basics - Anfänger-Themen 7
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
F Mehrdimensionale Arrays Java Basics - Anfänger-Themen 12
G Mehrdimensionale Arrays Java Basics - Anfänger-Themen 17
T Mehrdimensionale Arrays mit geschachtelter for-Schleife initialisieren Java Basics - Anfänger-Themen 14
T Mehrdimensionale Array Java Basics - Anfänger-Themen 2
L mehrdimensionale arrays ich verzweifle so langsam... Java Basics - Anfänger-Themen 9
putinator Mehrdimensionale Array addieren Java Basics - Anfänger-Themen 10
C Mehrdimensionale Arrays in Java langsam? Java Basics - Anfänger-Themen 8
D 2 mehrdimensionale Matrix einlesen Java Basics - Anfänger-Themen 2
D Mehrdimensionale Arrays Sortieren Java Basics - Anfänger-Themen 5
T Mehrdimensionale Arrays Java Basics - Anfänger-Themen 4
B mehrdimensionale arrays Java Basics - Anfänger-Themen 4
T .add(E) für mehrdimensionale Vectoren Java Basics - Anfänger-Themen 5
H mehrdimensionale Datenstruktur erfassen Java Basics - Anfänger-Themen 10
L Mehrdimensionale Array Java Basics - Anfänger-Themen 4
B mehrdimensionale Arrays Java Basics - Anfänger-Themen 5
A Mehrdimensionale Felder Java Basics - Anfänger-Themen 18
J eclipse, mehrdimensionale arrays, hilfsmethoden Java Basics - Anfänger-Themen 3
B Mehrdimensionale Array Problem Java Basics - Anfänger-Themen 12
S arraycopy für mehrdimensionale Arrays? Java Basics - Anfänger-Themen 8
J Mehrdimensionale Liste erstellen ohne Array Java Basics - Anfänger-Themen 14
B Mehrdimensionale Arrays Java Basics - Anfänger-Themen 4
T mehrdimensionale arrays Java Basics - Anfänger-Themen 8
H Mehrdimensionale Arrays vergleichen Java Basics - Anfänger-Themen 6
V Mehrdimensionale Collection? Java Basics - Anfänger-Themen 4
G Zwei mehrdimensionale Arrays multiplizieren Java Basics - Anfänger-Themen 9
J Mehrdimensionale Array kopieren Java Basics - Anfänger-Themen 6
J Mehrdimensionale Arrays inhaltlich vergleichen. Java Basics - Anfänger-Themen 3
D mehrdimensionale nicht-rechteckige Arrays Java Basics - Anfänger-Themen 2
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
krgewb ArrayList von ArrayList Java Basics - Anfänger-Themen 2
R ArrayList Problem Java Basics - Anfänger-Themen 6
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben