dynamische Matrix

V

vip3r-de

Hallo,

ich benötige eine dynamische Matrix (Spalten als auch Zeilen) und habe mir folgenden Code zusammengefrickelt der auch soweit funktioniert (wenn mann das "Spektakel" im Debugger verfolgt). Zumindest erstellt er mir ein Array im Array 0o.

Code:
List Matrix = new ArrayList();
Matrix.add(0, new ArrayList());
Matrix.get(0).add("Herbert mufft");

Java erstellt im Feld 0 eine weitere ArrayList. Nun würde ich gerne darauf zugreifen, was aber mit der letzten Zeile (Matrix.get(0).add("Herbert mufft") irgendwie nicht hinhaut.
Bzw. wie kann ich denn generell auf eine Instanz einer beliebigen Klasse in dieser Zelle zugreifen, also wenn da z.B.: Matrix.add(0, new EigeneKlasse()); stehen würde.

Hat jmd eine Idee ?

mfg
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

ich würde mal vorschlagen, dass du es so
Code:
List<ArrayList<String>> Matrix =  new ArrayList<ArrayList<String>>();
Matrix.add(0, new ArrayList<String>());
Matrix.get(0).add("Herbert mufft");
machst, falls nur Strings in der Matrix stehen sollen. Sonst lässt du einfach <String> weg.

Falls du nicht mit Java 5 oder höher arbeitest müsstest du es dann so machen.
Code:
((ArrayList)Matrix.get(0)).add("Herbert mufft");

So müsste das funktionieren.

MFG

zEriX
 
wenn ich es so eingebe wie du es vorgeschlagen hast, dann meckert eclipse sofort rum.

Multiple Markers in this Line

muss ich eine bestimmte Library verwenden ? Im moment benutze ich folgende:

import java.util.ArrayList;
import java.util.List;
 
Was soll man dazu sagen?

Welches Java hast du installiert. Das erste Beispiel funktioniert nur mit JDK ab 5.

Die zweite Zeile Code funktioniert aber in jedem Fall bei dir.
 
Also noch mal komplettes Beispiel

So könntest du es umsetzen, wenn du mit Java 5 oder höher arbeitest:
Code:
import java.util.ArrayList;
import java.util.List;

public class ArrayListMatrix {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List<ArrayList<String>> list  = new ArrayList<ArrayList<String>>();
		
		list.add(0,new ArrayList<String>());
		
		list.get(0).add("1Test1");
		list.get(0).add("1Test2");
		list.get(0).add("1Test3");
		
		list.add(1,new ArrayList<String>());
		
		list.get(1).add("2Test1");
		list.get(1).add("2Test2");
		list.get(1).add("2Test3");
		
		for(ArrayList<String> arrayList : list){
			for(String msg : arrayList){
				System.out.print(msg+"\t");
			}
			System.out.println();
		}
	}

}


Und so müsstest du es machen, wenn du ein älteres Java nutzt:

Code:
import java.util.ArrayList;
import java.util.List;

public class ArrayListMatrix {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List list  = new ArrayList();
		
		list.add(0,new ArrayList());
		
		((ArrayList)list.get(0)).add("1Test1");
		((ArrayList)list.get(0)).add("1Test2");
		((ArrayList)list.get(0)).add("1Test3");
		
		list.add(1,new ArrayList());
		
		((ArrayList)list.get(1)).add("2Test1");
		((ArrayList)list.get(1)).add("2Test2");
		((ArrayList)list.get(1)).add("2Test3");
		
		for(int i = 0; i < list.size(); i++){
			ArrayList arrayList = (ArrayList)list.get(i);
			for(int j = 0; j < arrayList.size(); j++){
				String msg = (String)arrayList.get(j);
				System.out.print(msg+"\t");
			}
			System.out.println();
		}
	}

}


MFG

zEriX
 
sodele ... "theoretisch" benutze ich Java 6, aber ich lasse mich gerne eines besseren belehren :)

unter Window->Preferences->Java->Installed JREs sehe ich 1.6.0_01 sollte doch richtig sein.
(Windows Platform - Java(TM) SE Development Kit 6 Update 1)

danke für eure bemühungen und geduld :D

mfg

P.S.: der obere code für java 5+ will nicht laufen -.-
nur der zweite "ältere" funktioniert
 
Zuletzt bearbeitet von einem Moderator:
AHHHHH ... der hat die ganze zeit mit 1.4 compiliert ... mann bin ich ein napf !

danke euch ! :rolleyes:
problem gelöst

mfg
 
Ich habe ein ähnliches Problem wie oben gestellt!
Ich brauche allerdings eine HashMap in der ich jeder ID (z.B. "Köln", "Berlin"...) eine Arraylist hinzufüge! Wie kann ich in diesem Fall direkt Daten in die Arraylist schreiben?
 
Hallo,

schau mal hier

Java:
package de.tutorials.hashmap;

import java.util.ArrayList;
import java.util.HashMap;

public class HashMapArrayListExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		HashMap map = new HashMap();
		
		map.put("Koeln", new ArrayList());
		map.put("Berlin", new ArrayList());
		
		((ArrayList)map.get("Koeln")).add("Irgendwas");
		((ArrayList)map.get("Berlin")).add("nochmal Irgendwas");

	}

}


MFG
zEriX
 
Zurück