Unterschied zwischen C # -Array und Liste

C # Array vs List ist überall dort, wo sich die Abstraktion und Implementierung von Menschen im Computer treffen. Ein Array ist unglaublich stark an den Hardware-Begriff des fortlaufenden, zusammenhängenden Speichers gebunden, wobei jedes Teil in der Größe identisch ist (obwohl diese Teile normalerweise Adressen sind und daher mit nicht identischen Referenten besprochen werden). Eine Liste könnte eine Idee sein (von der Arithmetik bis zu einem gewissen Grad), wo immer Teile bestellt werden und wo (normalerweise) ein Anfang und ein Ende vorhanden sind und somit wo immer eine Indizierung möglich ist. Diese beiden Ideen passen ganz gut zusammen. Sobald wir jedoch eine Liste als abstrakte Datenart betrachten, als einen Ansatz zum Zugreifen auf und Bearbeiten von Daten, können wir eine Reihe dieser Regeln brechen.

Was ist ein Array?

Ein Array kann eine aufeinanderfolgende Zusammenstellung vergleichbarer Daten sein, auf die gemäß dem „Index“ zugegriffen wird. Es ist der beste Stil eines Systems, bei dem das Wetter an einem zusammenhängenden Speicherort verbleibt.

In Array beginnt der Index bei Null. Um also auf den Primärteil eines Arrays „numarray“ zuzugreifen, sollte er als numarray (0) geschrieben werden.

Ein Array kann ein aufeinanderfolgender Speicherabschnitt sein, der n * size (type) Bytes belegt, wobei n die Länge des Arrays und size (type) die Größe des Speichers ist, die zum Speichern der Informationssortierung erforderlich ist, zu der Sie fortfahren innerhalb des Arrays verwenden. Dies deutet darauf hin, dass Sie, wenn Sie ein Array von einhundert Ints bilden möchten und jedes Int vier Bytes belegt, dazu gezwungen werden müssen, einen nicht genutzten Speicherbereich von mindestens vierhundert Bytes (100 * 4) zu haben. Dies impliziert außerdem, dass das Bilden, Entfesseln und Verwenden von Arrays aufgrund ihrer großen Speicherkapazitäten recht kostengünstig ist.

Array-Optionen: -

  • Die Informationen werden in einer Art fortlaufender Speicherzuordnungen aufbewahrt. jede hälfte folgt einfach einmal anders innerhalb der m / y. Es gibt keine Zufälligkeit bei der Zuordnung.
  • Sie geben zufälligen Zugriff wie arr (0), arr (6) usw.
  • Es gibt eine statische Speicherzuordnung. n Dies kann zur Verschwendung von Speicher führen.
  • In jeder Zelle eines Arrays gibt es nur einen Datenstil.
  • Das Einfügen und Löschen dauert etwas länger.

Was ist eine Liste?

Die ArrayList kann eine Auswahl von Objekten gleichen oder unterschiedlichen Typs sein. Die Dimensionen einer ArrayList werden je nach Bedarf dynamisch aufgeblasen oder gekürzt. Es funktioniert wie ein Array, aber im Gegensatz zu einem Array in ArrayList werden Dinge dynamisch zugeteilt oder freigegeben, dh Sie werden Daten in einem bestimmten Sortiment hinzufügen, entfernen, indizieren oder nach Daten suchen.

Eine Liste könnte aber eine völlig andere Struktur haben. Die meisten Listenimplementierungen sind eine Mischung aus Knoten, die Folgendes speichern: einen. - Ein Preis und, 2. - Ein oder mehrere Zeiger, die die Verbindung der Knoten untereinander aufrechterhalten. Dies deutet darauf hin, dass Sie keinen riesigen Teil des verfügbaren Speichers benötigen, der groß genug ist, um alle Ihre Daten aufzunehmen, da die Knoten in Ihrem Speicher verstreut sind.

Listenoptionen: -

  • Die Informationen werden in Komponenten zufällig gespeichert. n Jede Hälfte ist über einen Zeiger auf die nächste Zelle mit einer anderen verbunden (n auf die vorherige Zelle nur bei einer Doppelverbindungsliste)
  • Sie sind dank der Abhängigkeit von jeder Hälfte aufeinanderfolgend zugänglich
  • Es wird dynamisch zugewiesen, dass m / y jeder Zelle zugewiesen wird, sobald eine Prozessanforderung dafür vorliegt. Somit gibt es keine m / y Verschwendung
  • Eine einzelne Zelle ist in mehrere Komponenten unterteilt, die jeweils Informationen verschiedener Datenarten enthalten. Der letzte muss jedoch im Wesentlichen der Zeiger auf eine nachfolgende Zelle sein
  • Das Einfügen und Löschen ist viel einfacher und schneller. Auch das Hinausschauen ist einfacher.

Direkter Vergleich zwischen C # Array und List

Unten ist der Top 5 Unterschied zwischen C # Array vs List

Hauptunterschied zwischen C # -Array und Liste

Wie Sie sehen, gibt es viele Unterschiede zwischen der Leistung von C # -Array und der von List. Schauen wir uns den oberen Vergleich zwischen C # Array und List unten an -

  1. Array speichert Daten derselben Art, während ArrayList Daten innerhalb des Objekttyps speichert, der von verschiedener Art sein kann.
  2. Die Größe einer ArrayList wächst dynamisch, während die Arraygröße im gesamten Programm statisch bleibt.
  3. Einfüge- und Löschvorgänge in ArrayList sind langsamer als in einem Array.
  4. Arrays sind leistungsfähig maschinengeschrieben, während ArrayLists nicht leistungsfähig maschinengeschrieben sind.
  5. Arrays gehören zu System. Array-Namespace, wohingegen ArrayList zu System gehört. Sammlungs-Namespace.
  6. Entscheiden Sie sich nach der Auswahl zwischen Array und ArrayList für die Option, die Sie nur implementieren müssen.

C # Array vs List Vergleichstabelle

Unten finden Sie den höchsten Vergleich zwischen C # Array und List

S.No.

Array

Aufführen

1Arrays sind kontinuierlich im Speicher, was es (im Sinne der Leistung) anstrengend macht, Teile in die Mitte der Liste einzufügen. Der Vorteil ist, dass die Möglichkeit besteht, einen wahlfreien Zugriff durchzuführen.Auf der anderen Seite sind Listen Teile, die sich im Gedächtnis entfalten und miteinander verknüpfen. Dies ermöglicht ein einfaches Einfügen in die Liste, jedoch einen wahlfreien Zugriff, während keine weiteren Datenstrukturen möglich sind.
2Ein Array könnte ein System sein, um es zu erwähnen, es ist ein besonderer Ansatz zum Organisieren von Daten innerhalb des Speichergeräts.Eine Liste ist ein abstrakter Datentyp, dh eine beliebige Datenstruktur, die eine bestimmte Anzahl von Operationen unterstützt.
3Ein Array ist eine Sammlung homogener Teile.Eine Liste ist eine Sammlung heterogener Elemente.
4Der zugewiesene Array-Speicher ist statisch und kontinuierlich.Der zugewiesene Listenspeicher ist dynamisch und zufällig.
5Ein Benutzer muss nicht die Verfolgung der nächsten Speicherzuweisung einschränken.Ein Benutzer muss die Verfolgung des nächsten Speicherorts dort einschränken, wo Speicher zugewiesen ist.

Fazit - C # Array vs Liste

Wir haben einen Vergleich der C # -Array- und List-Performance-Speichernutzung in der C # -Sprache gesehen. Aus Gründen der Geschwindigkeit ist es in der Regel sinnvoll, regelmäßige Arrays zu bevorzugen. Der Leistungsgewinn ist entscheidend.

Listen werden in C # viel häufiger verwendet als Arrays. Es gibt jedoch einige Fälle, in denen Arrays verwendet werden (oder sollten), wenn das Wachstum Ihrer Daten unwahrscheinlich ist oder wenn Sie mit einer vergleichsweise großen Datenmenge fertig werden die in der Regel gezwungen werden müssen, indiziert zu werden.

Lassen Sie mich Ihnen 2 Beispiele von Listen anbieten, die die Prinzipien eines Arrays brechen. In einer Linkliste verweist jedes Teil auf das folgende Teil, daher platziere ich einfach ein Ersatzteil zwischen zwei vorhandenen Teilen oder nehme eines heraus und repariere die zwei verbleibenden (das vorherige und das nächste); Während ich über einen Index auf Teile zugreifen werde, werde ich dies nur tun, indem ich von einem Teil zum Sicherstellen und Untersuchen übergehe, sodass es nicht wirklich indiziert ist. Ein anderes Beispiel ist, dass die Warteschlange, wo immer ich will, nur die Spitze auflädt und von Anfang an wegnimmt; Wenn ich über einen Index auf Teile zugreifen möchte, ist dies zwar möglich, aber ich behandle die richtige Art abstrakter Daten eindeutig nicht falsch. Es ist egal, ob die Implementierung dies einfach geben würde.

Empfohlener Artikel

Dies war eine Anleitung zu den wichtigsten Unterschieden zwischen C # Array und List. Hier werden auch die wichtigsten Unterschiede zwischen C # -Array und Liste mit Infografiken sowie die Vergleichstabelle erläutert. Sie können auch einen Blick auf die folgenden Artikel werfen -

  1. Java-Liste oder Array-Liste
  2. C # -Schnittstelle gegen abstrakte Klasse
  3. ASP.NET vs C #
  4. Java Vector vs ArrayList