Liste in Array schreiben

  • Themenstarter Themenstarter guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

guest

Gast
Servus,
Ich habe eine liste und würde die gerne in ein bereits erstelltes Array schreiben, uhm, wie mache ich das?
Es gibt zwar eine Methode die so gehen soll:
<Data> Data[] toArray(Data[])
Allerding shab ich leider nicht verstanden, wie das funktionieren soll, dass ich die die inder Liste ebfindlichen objekte dann in dieses Array reinschreibe:

ArrayList<Point> liste = new ArrayList<Point>(listLength(list));

(listeLength() ist eine von mri selbst erstellte Methode um die Listenlänge zu bestimmen).

Danke im Vorraus ^^
 
es kann doch noch nicht für jeden Dreizeiler schon was geben..

for (index) {
array[index] = liste.get(otherIndex);
}
 
guest hat gesagt.:
Allerding shab ich leider nicht verstanden, wie das funktionieren soll, dass ich die die inder Liste ebfindlichen objekte dann in dieses Array reinschreibe:

Code:
ArrayList<String> liste = new ArrayList<String>();
liste.add("Hallo");
liste.add("Welt");
String[] array = new String[2];

liste.toArray(array); // <--- SO GEHT ES

System.out.println(array[0]);
System.out.println(array[1]);
 
Alllso,
ich muss diese Methode verwenden um ein Array zu erstellen:

Code:
ArrayList<Point> arrayList = new ArrayList<Point>();


Soderle, also, ich lasse, da ich vorher nicht weiß, wie großd as Array sein soll, eine einfach verketteteListe erstellen.

Dann soll eben meine Funktion "convert" aufgerufen werden, die die Liste erstellt (sieht derzeit noch so aus):

Code:
	void convert(Node list){

		ArrayList<Point> arrayList = new ArrayList<Point>(listLength(list));

		for(int i = 0; i < listLength(list); i++){
			arrayList[i] = head.get(i);
		}
	}

dazu dann passend meine listlength methode:

Code:
int listLength(Node list){
		int tmp = 0;
		Node act = head;

		while(act != null){
			tmp++;
			act = act.next;
		}		
		return tmp;
	}

mhh, nur leider klappt das einfach nicht, dass ich die Punkt Objekte aus der Liste in das Array reinschreibe.. 🙁

Ich weiß ncht warum, ich habs genauso gemacht SlaterB geschrieben hat, und hab vorher auch die LinkedListe und Arraylist aus den utilities von Java importiert.

Sowas... 🙁

Danke ^^
 
guest hat gesagt.:
Alllso,
ich muss diese Methode verwenden um ein Array zu erstellen:

Code:
ArrayList<Point> arrayList = new ArrayList<Point>();

Soderle, also, ich lasse, da ich vorher nicht weiß, wie großd as Array sein soll, eine einfach verketteteListe erstellen.
Welches Array? Eine ArrayList ist kein Array. Du kannst einfach die Sachen reinpacken, ohne vorher zu wissen, wieviele es sein werden.

Code:
ArrayList<Point> arrayList = new ArrayList<Point>();
arrayList.add(new Point(5, 7));
arrayList.add(new Point(3, 2));
arrayList.add(new Point(9, 1));
// ...
 
ohooo, vielen lieben Dank, das macht einiges um längen einleuchtender ^^

Warum heißt das Ding denn danN ArrayList wenns kein Array ist?

Also ist das eine ganz normale Liste? Ist die dann einfach oder zweifach verkettet?
 
die ist nicht verkettet sondern verwendet intern ein Array und heißt deshalb auch so,
ist trotzdem selber kein Array
 
achsooo, ein höchst interessantes konstrukt, also wenn man so will ein Array mit den Vorteilen einer Liste!!

Und der Zugriff auf einzelen Objekte, findet der wie bei einem Array statt?

Also:

ArrayList[1]

für das zweite Objekt?


Vielen lieben Dank nochmals!!
 
nein, Zugriff wie bei einer Liste,
ist in erste Linie eine Liste und in gewisser Hinsicht von verketteten Listen wie LinkedList oder deiner Liste nicht zu unterscheiden,
da mit dem gleichen Operationen zugegriffen wird wie get(index)

nur intern wird hier auf ein Array zurückgegriffen, keine Nodes durchgehoppelt,

> wenn man so will ein Array mit den Vorteilen einer Liste!!

stimmt, aber sinngemäß eigentlich genau falschrum:
in erster Hinsicht eine Liste mit den Vorteilen eines Arrays!
 
Ahso, schade.. . Auf arrays zugreifen fand ich einfacher.

wie krieg ich denn raus, wieviele Objekte sich in der Liste befinden?

Danke ^^
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben