ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
692
692
EMPFEHLEN
-
Hallo,
ich schau mir gerade mit ILSpy die Implementation der Generischen Liste (List<T>) an und wundere mich. Hinter der Liste steckt doch wieder ein einfaches Array:
Code csharp:1
private T[] _items;
welches bei Überlauf komplett in ein neues, größeres Array kopiert wird. Bislang dachte ich, dass es besser wäre eine verkettete Liste statt ein Array für Verkettungen undefinierter Länge zu benutzen.
Nun zur Frage:
Warum steckt dahinter ein Array? Performance? Einfacher?
Zusatzfrage:
Ist T[] _items ein Array mit den Objekten T oder ein Array von Referenzen auf diese Objekte?
Tschuldigung für die Anfängerfrage.
Gruß.
*fall so'n bischen vom Glauben ab.*Geändert von colblake (16.01.12 um 12:18 Uhr)
Über so viele Sachen wächst Gras , man kann keiner Wiese mehr trauen.
-
16.01.12 12:47 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Eine List<T> ist zu allererst mal eine Datenstruktur die wahlfreien Zugriff per Index bietet. Dafür wäre eine verkettete Liste denkbar schlecht geeignet.
Eine LinkedList<T> dagegen ist auch wirklich als verkettete Liste implementiert.
Man sollte einfach die Datenstruktur wählen die am besten zur Problemstellung passt.
Gegenfrage: Handelt es sich bei T um einen Werttyp oder Referenztyp?Zusatzfrage:
Ist T[] _items ein Array mit den Objekten T oder ein Array von Referenzen auf diese Objekte?
Tschuldigung für die Anfängerfrage.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hi deepthroat,
danke für die Antwort.
D.h. man nimmt die evtl. längere Zeit beim hinzufügen von Elementen in kauf um einen performanten Indexer zu haben. Hm, wäre eine Erklärung.
ich meinte allgemein. Also beide.
Aus deiner Gegenfrage entnehme ich aber schon, dass es wohl bei Referenztypen die Referenz ist und bei Werttypen der Wert, Oder?Geändert von colblake (16.01.12 um 13:57 Uhr)
Über so viele Sachen wächst Gras , man kann keiner Wiese mehr trauen.
-
16.01.12 14:08 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
[VC++.NET] Arbeiten mit Generic::List / Array
Von the incredible Leitman im Forum .NET DatenverwaltungAntworten: 19Letzter Beitrag: 27.12.06, 10:13 -
List+Array Sortieren
Von Bicko im Forum PHPAntworten: 2Letzter Beitrag: 21.10.06, 17:33 -
Array und List
Von manja im Forum JavaAntworten: 6Letzter Beitrag: 06.05.04, 01:05 -
list (Array); Problem
Von EM-Autotechnik im Forum PHPAntworten: 0Letzter Beitrag: 31.10.03, 15:18 -
Array+Implode und BB-Code:[List]
Von CrazyHornet im Forum PHPAntworten: 7Letzter Beitrag: 03.09.03, 09:38





Zitieren

Login





