Laden...

Problem mit 3-dim. ArrayList[,]

Erstellt von amozi vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.206 Views
A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren
Problem mit 3-dim. ArrayList[,]

Hallo zusammen,

ich wollte mal fragen, ob es möglich ist eine 3-dimensionale ArrayList zu erzeugen. Bei meinen Versuchen geht es nämlich nicht. In der Doku steht nichts das es nicht gehen sollte. Kann mir jemand helfen?

private ArrayList[,] offlineSigDaten;

this.offlineSigDaten = new ArrayList[this.anzSigAuswahl];
for(int i=0; i<this.anzSigAuswahl; i++)this.offlineSigDaten[i] = new ArrayList();

Danke

Danke
amozi

432 Beiträge seit 2005
vor 18 Jahren

hi amozi,

du wählst in der deklaration für das was du mit offlineSigDaten vorhast nur die falsche dimension:

so geht es:

private ArrayList[] offlineSigDaten;

this.offlineSigDaten = new ArrayList[this.anzSigAuswahl];
for(int i=0; i<this.anzSigAuswahl; i++)this.offlineSigDaten[i] = new ArrayList(); 

hth
ron

X
2.051 Beiträge seit 2004
vor 18 Jahren

und wenn du wirklich 3D willst:


ArrayList[,,] offlineSigDaten = new ArrayList[2, 3, 4];
for (int x = 0; x < offlineSigDaten.GetLength(0); x++)
    for (int y = 0; y < offlineSigDaten.GetLength(1); y++)
        for (int z = 0; z < offlineSigDaten.GetLength(2); z++)
            offlineSigDaten[x, y, z] = new ArrayList();

432 Beiträge seit 2005
vor 18 Jahren

he amozi, und noch was:

du erstellst ja keine "dreidimensionale arraylist", sondern eine "arraylist of arraylists"; daher wahrscheinlich dein denkfehler in der mehrdimensionalen deklaration.

die arraylist übernimmt ihre elemente ja mit Add(). so gesehen bist du jetzt erst zweidimensional.

in die innere arraylist kann man jetzt natürlich auch wieder eine arraylist legen und damit auf dimension drei ausweiten... 😉

hth
ron

A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren

Hi citizen.ron und Xqgene,

vielen Dank für die ausführliche Infos.

Danke
amozi

A
amozi Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren

Hallo,

obwohl ich wohin gedacht habe die Thematik verstanden zu haben, sieht es so aus, dass bei mir immer noch hängt.
Unzwar habe ich mit dem folgenden Code die Felder einen statischen Array(this.anzSigAuswahl=3) dynamisch gemacht.

private ArrayList[] offlineSigDaten;
this.offlineSigDaten = new ArrayList[this.anzSigAuswahl];
for(int i=0; i<this.anzSigAuswahl; i++)this.offlineSigDaten[i] = new ArrayList();

Jetzt möchte ich eigentlich zwei dynamische Felder mit diesem statischen Array machen. Trotz Codebeispiel von
Xqgene ist es mir aber immer noch nicht gelungen.

this.test = new ArrayList[this.anzSigAuswahl,/*dynamisch aber wie*/];for(int x=0; x<this.anzSigAuswahl; x++)
for(int y=0; x< /* ??? */; y++)
this.test[x,y] = new ArrayList();

Wie führt man eigentlich dann den Abruf der Daten aus?
Würde mich freuen wenn ich wieder Unterstützung kriegen könnte.

Danke
amozi

S
1.047 Beiträge seit 2005
vor 18 Jahren

lies dir mal bitte Verwendung von Arrays in C# durch und schau dann auch mal ob dein problem wirklich damit gelöst wird...

ich frag mich nämlich grad was du überhaupt mit deinen 3-dimensionalen Array vom Typ ArrayList anfangen willst.