Array: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K (mal korrigiert, wie es mir in den Sinn kam)
Zeile 1: Zeile 1:
Ein Array ist ein Konstrukt in dem mehrere [[Objekt]]e eins [[Datentyp]]s hintereinander aufgereiht stehen. (Es wird hier immer von Objekten geredet egal ob es in der [[Programmiersprache]] Objekte gibt oder nicht)
+
Ein Array ist ein Konstrukt in dem mehrere [[Objekt]]e eines [[Datentyp]]s hintereinander aufgereiht stehen. (Es wird hier immer von Objekten geredet egal ob es in der [[Programmiersprache]] Objekte gibt oder nicht)
Diese Konstrukte werden oft verwendet wenn man eine große Ansammlung von gleichen Daten eines Objekts hat, durch die Verwendung von Arrays muss man nicht viele Variablen anlegen und hat so alles übersichtlicher. In den meisten Sprachen haben Arrays jedoch den Nachteil das sie statisch sind, d.h. man legt einmal ihre Größe fest und danach kann man es nicht mehr ändern, will man mehr Objekte ablegen dann muss man sich einen neuen Array anlegen. Daher haben Arrays in diesen Sprachen aber auch einen Vorteil gegen über den dynamischen Strukturen wie Listen, da sie eine fest definierte Größe haben kann man sie über einen Index anlegen und so über den Index darauf zugreifen, dies ist meistens eine schnellere Möglichkeit als bei anderen Strukturen möglich ist.  
+
Diese Konstrukte werden oft verwendet, wenn man eine große Ansammlung von gleichen Daten eines Objekts hat. Durch die Verwendung von Arrays muss man nicht viele Variablen anlegen und hat so alles übersichtlicher. In den meisten Sprachen haben Arrays jedoch den Nachteil, dass sie statisch sind, d.h. man legt einmal ihre Größe fest und danach kann man diese nicht mehr ändern. Will man mehr Objekte ablegen, muss man ein neues Array anlegen. Daher haben Arrays in diesen Sprachen aber auch einen Vorteil gegenüber den dynamischen Strukturen wie Listen: Da sie eine fest definierte Größe haben kann man sie über einen Index anlegen und darauf zugreifen. Dies ist meistens eine schnellere Möglichkeit, als es bei anderen Strukturen möglich ist.  
  
Für die Erzeugung von Arrays gibt es unterschiedliche Wege, jedoch haben sie meistens gemeinsam das eckige Klammern([]) einen Array symbolisieren. So wird in [[C]] und [[C++]] ein Array mit <code>typ name[];</code> deklariert und die Initialisierung kann auf zwei unterschiedliche Wege erfolgen, <code> name = typ[anzahl]</code> oder <code>name = malloc(sizeof(typ)*anzahl)</code>, bzw. <code>name = new typ[anzahl]</code>. Der Unterschied zwischen den beiden Arten ist, dass bei der ersten Möglichkeit der Speicher vom Compiler festgelegt wird und so nicht mehr freigegeben werden muss und bei der zweiten Art zur Laufzeit angelegt wird, welchen man dann auch selbst freigeben muss. Will man in C# oder Java einen Array anlegen, geschieht dies mit <code>typ[] name;</code> und die Initialisierung erfolgt über <code>name = new typ[anzahl]()</code>. In Java ist es auch möglich die Arrays wie in C++ anzulegen.  
+
Für die Erzeugung von Arrays gibt es unterschiedliche Wege, jedoch haben sie meistens gemeinsam, dass eckige Klammern([]) ein Array symbolisieren. So wird in [[C]] und [[C++]] ein Array mit <code>typ name[];</code> deklariert und die Initialisierung kann auf zwei unterschiedliche Wege erfolgen, <code> name = typ[anzahl]</code> oder <code>name = malloc(sizeof(typ)*anzahl)</code>, bzw. <code>name = new typ[anzahl]</code>. Der Unterschied zwischen den beiden Arten ist, dass bei der ersten Möglichkeit der Speicher vom Compiler festgelegt wird und so nicht mehr freigegeben werden muss und bei der zweiten Art zur Laufzeit angelegt wird, welchen man dann auch selbst freigeben muss. Will man in C# oder Java ein Array anlegen, geschieht dies mit <code>typ[] name;</code> und die Initialisierung erfolgt über <code>name = new typ[anzahl]()</code>. In Java ist es auch möglich die Arrays wie in C++ anzulegen.  
  
Bei der Sprache [[C#]] wurde noch ein weiterer Arraytyp eingeführt. Hier sind in jeder Zeile immer gleich viele Objekte, diese werden mit <code>typ[,] name = new typ[anzahl,anzahl]();</code> angelegt. In allen anderen Sprachen lassen sich Arrays auch mit mehreren Dimensionen anlegen, hierzu muss nur ein weiteres Klammerpaar hinzugefügt werden. Diese neuen Arrays in dem bestehenden Array müssen auch nicht gleich initialisiert werden sondern können auch erst später angelegt werden um so besser auf die Gegebenheiten angepasst zu sein. Daher ist es möglich das eine Zeile mal 4 Objekte enhält und eine mal garkeine, dies muss dann im Programm alles gesondert behandelt werden.
+
Bei der Sprache [[C#]] wurde noch ein weiterer Arraytyp eingeführt. Hier sind in jeder Zeile immer gleich viele Objekte, diese werden mit <code>typ[,] name = new typ[anzahl,anzahl]();</code> angelegt. In allen anderen Sprachen lassen sich Arrays auch mit mehreren Dimensionen anlegen, hierzu muss nur ein weiteres Klammerpaar hinzugefügt werden. Diese neuen Arrays in dem bestehenden Array müssen auch nicht gleich initialisiert werden sondern können auch erst später angelegt werden um so besser auf die Gegebenheiten angepasst zu sein. Daher ist es möglich das eine Zeile mal 4 Objekte enhält und eine mal gar keine, dies muss dann im Programm alles gesondert behandelt werden.
  
 
Neben der Möglichkeit des Anlegens von leeren Arrays gibt es auch Möglichkeit Arrays gleich mit vorhandenen Daten anzulegen. In den meisten Sprachen ist dies einfach möglich indem man nach der normalen Syntax für die Initialisierung des Arrays gleich in geschweiften Klammern die Objekte durch Kommas getrennt einfügt, z.B. in [[Java]]:
 
Neben der Möglichkeit des Anlegens von leeren Arrays gibt es auch Möglichkeit Arrays gleich mit vorhandenen Daten anzulegen. In den meisten Sprachen ist dies einfach möglich indem man nach der normalen Syntax für die Initialisierung des Arrays gleich in geschweiften Klammern die Objekte durch Kommas getrennt einfügt, z.B. in [[Java]]:

Version vom 12. Oktober 2016, 13:08 Uhr

Ein Array ist ein Konstrukt in dem mehrere Objekte eines Datentyps hintereinander aufgereiht stehen. (Es wird hier immer von Objekten geredet egal ob es in der Programmiersprache Objekte gibt oder nicht) Diese Konstrukte werden oft verwendet, wenn man eine große Ansammlung von gleichen Daten eines Objekts hat. Durch die Verwendung von Arrays muss man nicht viele Variablen anlegen und hat so alles übersichtlicher. In den meisten Sprachen haben Arrays jedoch den Nachteil, dass sie statisch sind, d.h. man legt einmal ihre Größe fest und danach kann man diese nicht mehr ändern. Will man mehr Objekte ablegen, muss man ein neues Array anlegen. Daher haben Arrays in diesen Sprachen aber auch einen Vorteil gegenüber den dynamischen Strukturen wie Listen: Da sie eine fest definierte Größe haben kann man sie über einen Index anlegen und darauf zugreifen. Dies ist meistens eine schnellere Möglichkeit, als es bei anderen Strukturen möglich ist.

Für die Erzeugung von Arrays gibt es unterschiedliche Wege, jedoch haben sie meistens gemeinsam, dass eckige Klammern([]) ein Array symbolisieren. So wird in C und C++ ein Array mit typ name[]; deklariert und die Initialisierung kann auf zwei unterschiedliche Wege erfolgen, name = typ[anzahl] oder name = malloc(sizeof(typ)*anzahl), bzw. name = new typ[anzahl]. Der Unterschied zwischen den beiden Arten ist, dass bei der ersten Möglichkeit der Speicher vom Compiler festgelegt wird und so nicht mehr freigegeben werden muss und bei der zweiten Art zur Laufzeit angelegt wird, welchen man dann auch selbst freigeben muss. Will man in C# oder Java ein Array anlegen, geschieht dies mit typ[] name; und die Initialisierung erfolgt über name = new typ[anzahl](). In Java ist es auch möglich die Arrays wie in C++ anzulegen.

Bei der Sprache C# wurde noch ein weiterer Arraytyp eingeführt. Hier sind in jeder Zeile immer gleich viele Objekte, diese werden mit typ[,] name = new typ[anzahl,anzahl](); angelegt. In allen anderen Sprachen lassen sich Arrays auch mit mehreren Dimensionen anlegen, hierzu muss nur ein weiteres Klammerpaar hinzugefügt werden. Diese neuen Arrays in dem bestehenden Array müssen auch nicht gleich initialisiert werden sondern können auch erst später angelegt werden um so besser auf die Gegebenheiten angepasst zu sein. Daher ist es möglich das eine Zeile mal 4 Objekte enhält und eine mal gar keine, dies muss dann im Programm alles gesondert behandelt werden.

Neben der Möglichkeit des Anlegens von leeren Arrays gibt es auch Möglichkeit Arrays gleich mit vorhandenen Daten anzulegen. In den meisten Sprachen ist dies einfach möglich indem man nach der normalen Syntax für die Initialisierung des Arrays gleich in geschweiften Klammern die Objekte durch Kommas getrennt einfügt, z.B. in Java: <code=java> String s = new String[]{"Hallo"," ","Hallo","!!!"}; </code=java> In einigen Sprachen ist es auch möglich bei der Deklaration der Variablen gleich die Werte zuzuweisen ohne die übliche Initialisierungssyntax, z.B. in Java: <code=java> String[] s = {"Hallo"," ","Hallo","!!!"}; </code=java>