Entwickler-Ecke
C# - Die Sprache - Arrax dynamisch vergrößern / verkleinern?
Fetze - Fr 05.10.07 16:13
Titel: Arrax dynamisch vergrößern / verkleinern?
Ganz kurz: Wie geht das? Oder muss ich das manuell machen, ein neues Array erstellen und alle Werte übertragen? Wie macht die Systeminterne ArrayList das denn?
Christian S. - Fr 05.10.07 16:19
Wenn Du sowas brauchst, ist ein Array dafür sehr ungeeignet. Nimm stattdessen eine generische List<T>, die ist komfortabler.
ArrayList und List<T> benutzen, wenn man Reflector glaubt, was ich tue ;-), auch ein Array. Aber sie nehmen Dir die ganze Arbeit ab ;-)
Fetze - Fr 05.10.07 16:23
Wenn ArrayList UND List<> ein Array verwenden, wo ist dann der Unterschied? oO
Ich hatte List<> immer für eine LinkedList gehalten..?
Und: Ist bei ArrayList auch sicher, dass ein Index A auch immer das Objekt enthält, was ich zuvor bei Index A eingefügt habe? Das ist in diesem Fall wichtig, weswegen ich das eigentlich selbst übernehmen wollte. Außerdem sollte das ganze möglicht schnell sein, weswegen ich vor List<>, die ich ja für eine Linkedlist gehalten habe / halte, zurückschrecke.
Christian S. - Fr 05.10.07 16:32
Fetze hat folgendes geschrieben: |
| Wenn ArrayList UND List<> ein Array verwenden, wo ist dann der Unterschied? oO |
Dass List<T> eine
generische Liste ist, die Dir (a) das stände hin- und her-casten erspart und (b) damit auch das boxing / unboxing bei Werttypen. Damit ist sie komfortabler, schneller und vor allem typensicher.
Fetze hat folgendes geschrieben: |
| Ich hatte List<> immer für eine LinkedList gehalten..? |
Ich war auch überrascht, aber kannst es Dir ja im Reflector anschauen ;-)
Fetze hat folgendes geschrieben: |
| Und: Ist bei ArrayList auch sicher, dass ein Index A auch immer das Objekt enthält, was ich zuvor bei Index A eingefügt habe? |
Wenn Du Elemente, die vor Index A liegen, wieder entfernst, rutschen die anderen natürlich nach.
Fetze hat folgendes geschrieben: |
| Das ist in diesem Fall wichtig, weswegen ich das eigentlich selbst übernehmen wollte. Außerdem sollte das ganze möglicht schnell sein, weswegen ich vor List<>, die ich ja für eine Linkedlist gehalten habe / halte, zurückschrecke. |
Mit der Performance von List<T> hatte ich eigentlich nie Probleme.
Schau Dir mal LinkedList<T> an, das ist eine doppelt verkettete Liste, allerdings dann natürlich ohne den Zugriff durch Indizes.
Fetze - Fr 05.10.07 16:34
Okay, dann danke :)
Christian S. - Fr 05.10.07 16:36
Hast mein Edit evtl. nicht mehr gesehen:
Schau Dir mal LinkedList<T> an, das ist eine doppelt verkettete Liste, allerdings dann natürlich ohne den Zugriff durch Indizes.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!