Array: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(weitere Beispiele)
Zeile 1: Zeile 1:
Das Array ist eine der wichtigsten Datenstrukturen in der Informatik.
+
Das '''Array''' ist eine der wichtigsten [[Datenstrukturen]] in der Informatik.
 
+
  
 
==Was ist ein Array?==
 
==Was ist ein Array?==
  
Ein Array (engl. für Feld) kann benutzt werden, um Daten des gleichen Typs so abzuspeichern, dass ein schneller Zugriff mittels Indexes ermöglicht wird. Ein Array ist so zu sagen ein Schrank mit Schubladen. Jede dieser Schubladen hat eine Nummer, den Index, und in jeder Schublade ist ein Inhalt.
+
Ein Array (''engl''. für "Feld") kann benutzt werden, um Daten des gleichen Typs so abzuspeichern, dass ein schneller Zugriff mittels Indizes ermöglicht wird. Ein Array ist sozusagen ein Schrank mit Schubladen. Jede dieser Schubladen hat eine Nummer, den Index, und in jeder Schublade ist ein Inhalt.
  
==Deklarierung eines Arrays==
+
==Deklaration==
  
 
  Typ[] Name;
 
  Typ[] Name;
  
Zunächst gibt man den Typ des Arrays an, zB wenn bei einem Integer-Array <code>int[]</code>. Danach wird das Array benannt.
+
Bei der Deklaration wird zuerst der Typ des Arrays angegeben, z.B. <code>int[]</code> für ein [[Integer]]-Array. Danach wird das Array benannt.
  
 
Bsp. 1:
 
Bsp. 1:
Zeile 16: Zeile 15:
 
int[] arr;
 
int[] arr;
 
</source>
 
</source>
 
+
''arr'' ist ein Integer-Array, in dem ganze Zahlen gespeichert werden können.
''arr'' ist ein Integerarray, in dem Ganzzahlen gespeichert werden können.
+
 
+
  
 
Bsp. 2:
 
Bsp. 2:
Zeile 24: Zeile 21:
 
char[] arr2;
 
char[] arr2;
 
</source>
 
</source>
 +
''arr2'' ist ein [[Character]]-Array, in dem Zeichen gespeichert werden können.
  
''arr2'' ist ein Charackterarry, in dem Zeichen gespeichert werden können.
+
==Initialisierung==
  
==Initialisierung eines Arrays==
+
Bei der Deklaration wird noch kein Speicher für das Array belegt, dies geschieht erst mit der Initialisierung. Es gibt mehrere Arten und Weisen, die Initialisierung eines Arrays vorzunehmen.
  
Bei der Deklaration wird noch kein Speicher für das Array belegt. Dies geschieht erst mit der Initialisierung. Es gibt unterschiedliche Weisen ein Array zu initialisieren.
+
===Direkte Initialisierung===
  
===direkte Initialisierung===
+
Ein Array kann direkt mit Werten gefüllt werden, um es zu initialisieren. Danach ist das Array fix. Seine Länge kann nicht mehr geändert werden.
 
+
Ein Array kann direkt mit Werten gefüllt werden, um das Array zu initialisieren. Nach der Initialisierung ist ein Array fix. Es kann die Länge des Arrays nicht mehr geändert werden.
+
  
 
  Typ[] Name = {Inhalt};
 
  Typ[] Name = {Inhalt};
  
Beispiele:
+
Bsp 1:
 
+
 
<source lang="java">
 
<source lang="java">
 
int[] arr = {2, 6, 8, 9, 1}
 
int[] arr = {2, 6, 8, 9, 1}
 
</source>
 
</source>
 +
Dieses Array ist vom Typ ''integer''. Es beinhaltet die Zahlen ''2'', ''6'', ''8'', ''9'', ''1'' in dieser Reihenfolge. Dementsprechend beträgt die Länge dieses Arrays 5.
  
Dieses Array ist vom Typ ''integer''. Es beinhaltet die Zahlen ''2'', ''6'', ''8'', ''9'', ''1'' in dieser Reihenfolge. Dem entsprechend beträgt die Länge dieses Arrays 5.
+
Bsp 2:
 
+
 
+
 
+
 
+
 
<source lang="java">
 
<source lang="java">
 
char[] arr2 = {'d', 'e', 'a'}
 
char[] arr2 = {'d', 'e', 'a'}
 
</source>
 
</source>
 +
Dieses Array ist vom Typ ''character''. Es beinhaltet die Zeichen ''d'', ''e'', ''a'' in dieser Reihenfolge. Die Länge beträgt 3.
  
Dieses Array ist vom Typ ''charackter''. Es beinhaltet die Zeichen ''d'', ''e'', ''a'' in dieser Reihenfolge. Die Länge beträgt 3.
+
Bsp 3:
 
+
 
+
 
+
 
+
 
<source lang="java">
 
<source lang="java">
 
String[] arr3 = {"hello", "world", "foo", "bar"}
 
String[] arr3 = {"hello", "world", "foo", "bar"}
 
</source>
 
</source>
 
+
Dieses Array ist vom Typ ''String''. Es beinhaltet die [[Zeichenkette|Zeichenketten]] ''hello'', ''world'', ''foo'' und ''bar''.
Dieses Array ist vom Typ ''String''. Es beinhaltet die Zeichenketten ''hello'', ''world'', ''bar''.
+
 
+
 
+
  
 
===Initalisierung mit ''new''===
 
===Initalisierung mit ''new''===
  
Mit dem '''new'''-Operator kann auch ein Array initialisiert werden. Wenn man den so das Array dekalriert, muss die maximale Länge des Arrays angegeben werden.
+
Mit dem '''new'''-[[Operator]] kann ein Array auch initialisiert werden. Wenn man so das Array deklariert, muss seine maximale Länge angegeben werden.
  
 
  Typ[] Name = '''new''' Typ[''Länge'']
 
  Typ[] Name = '''new''' Typ[''Länge'']
  
 
+
Bsp:
 
+
 
<source lang="java">
 
<source lang="java">
 
int[] arr = new int[10];
 
int[] arr = new int[10];
 
</source>
 
</source>
 +
Dieses Integer-Array besitzt die maximale Länge 10. Das Array wird mit Initialwerten gefüllt.
  
Dieses Interarray besitzt die Länge 10 und das Array wird mit Initialwerten gefüllt.
+
==Verwendung==
 
+
 
+
 
+
 
+
 
+
==Verwendung eines Arrays==
+
  
 
===Speichern von Werten in einem Array===
 
===Speichern von Werten in einem Array===
Zeile 89: Zeile 69:
 
  ''Name''[''Index''] = ''Wert''
 
  ''Name''[''Index''] = ''Wert''
  
 
+
Bsp:
 
+
 
+
 
<source lang="java">
 
<source lang="java">
 
arr[1] = 5;
 
arr[1] = 5;
 
</source>
 
</source>
  
===Verwendung der Werte eines Arrays===
+
 
 +
 
 +
===Verwendung der Werte===
  
  
Zeile 102: Zeile 82:
 
===Aufbau der Indexe des Arrays===
 
===Aufbau der Indexe des Arrays===
  
Jedes Element eines Arrays hat einen Index. Das erste Element eines Arrays hat jedoch nicht den Index '''1''', sondern '''0'''. Das zweite Element '''1''', statt '''2''', usw. . Das letzte Element eines Arrays ist dem entsprechend die Länge des Arrays - 1.
+
Jedes Element eines Arrays hat einen Index. Die Zählung beginnt mit '''0'''.  
  
  
 
===Länge eines Arrays===
 
===Länge eines Arrays===
  
Die Länge eines Arrays kann durch ''Name des Arrays'' '''.'''length rausgefunden werden. Dieser Wert kann als Variable verwendet werden.
+
Die Länge eines Arrays kann durch ''Name des Arrays'' '''.'''length rausgefunden werden. Dieser Wert kann als [[Variable]] verwendet werden.
  
 
<source lang="java">
 
<source lang="java">
Zeile 118: Zeile 98:
 
===Arraybefüllung mittels Schleife===
 
===Arraybefüllung mittels Schleife===
  
Ein Array kann auch mit Hilfe von Schleifen gefüllt werden. Sowohl Indexes als auch Werte können auch Variablen sein. Wichtig hierbei ist, dass die Länge ''n'' ist, die Indexes aber von ''0'' bis ''n-1'' geht.
+
Ein Array kann auch mit Hilfe von [[Schleifen]] gefüllt werden. Sowohl Indexe als auch Werte können Variablen sein. Wichtig hierbei ist, dass die Länge ''n'' ist, die Indexe aber von ''0'' bis ''n-1'' geht.
  
 +
Bsp:
 
<source lang="java">
 
<source lang="java">
 
for(int i = 0; i < arr.length; ++i)
 
for(int i = 0; i < arr.length; ++i)
Zeile 126: Zeile 107:
 
}
 
}
 
</source>
 
</source>
 
+
Jedem Element dieses Arrays wird der doppelte Indexwert zugewiesen.
Jedes Element dieses Array wird mit dem doppelten Indexwert zugewiesen.
+
  
 
==Mehrdimensionale Arrays==
 
==Mehrdimensionale Arrays==
  
Ein Array kann mehr als eine Dimensionen beinhalten. Arrays können, theoretisch, unendlich viele Dimensionen besitzen. Sie werden ähnlich deklariert, initialisiert und verwendet wie ein-dimensionale Arrays (s.o.).
+
Arrays können, theoretisch, unendlich viele Dimensionen besitzen. Mehrdimensionale Arrays werden ähnlich deklariert, initialisiert und verwendet wie die hier bisher behandelten eindimensionalen Arrays.
  
  
===2-Dimensionales Array===
+
===Zweidimensionales Array===
  
Ein 2-Dimensionales Array kann man sich als Matrix vorstellen. Jedes Element hat nun zwei Indexes.
+
Ein 2-Dimensionales Array kann man sich als Matrix vorstellen. Jedes Element hat nun zwei Indexe.
  
  
Zeile 156: Zeile 136:
 
  Name[Index x][Index y] = Wert;
 
  Name[Index x][Index y] = Wert;
  
==weitere Beispiele==
+
==Weitere Beispiele==
  
Eine n x n große Matrix soll programmiert werden. Dabei soll der Wert der Elemente die Summe der verdoppelten Indexes sein.
+
Eine n x n-große Matrix soll programmiert werden. Dabei soll der Wert der Elemente die Summe der verdoppelten Indexe sein.
  
 
<source lang="java">
 
<source lang="java">

Version vom 14. März 2016, 00:44 Uhr

Das Array ist eine der wichtigsten Datenstrukturen in der Informatik.

Was ist ein Array?

Ein Array (engl. für "Feld") kann benutzt werden, um Daten des gleichen Typs so abzuspeichern, dass ein schneller Zugriff mittels Indizes ermöglicht wird. Ein Array ist sozusagen ein Schrank mit Schubladen. Jede dieser Schubladen hat eine Nummer, den Index, und in jeder Schublade ist ein Inhalt.

Deklaration

Typ[] Name;

Bei der Deklaration wird zuerst der Typ des Arrays angegeben, z.B. int[] für ein Integer-Array. Danach wird das Array benannt.

Bsp. 1:

int[] arr;

arr ist ein Integer-Array, in dem ganze Zahlen gespeichert werden können.

Bsp. 2:

char[] arr2;

arr2 ist ein Character-Array, in dem Zeichen gespeichert werden können.

Initialisierung

Bei der Deklaration wird noch kein Speicher für das Array belegt, dies geschieht erst mit der Initialisierung. Es gibt mehrere Arten und Weisen, die Initialisierung eines Arrays vorzunehmen.

Direkte Initialisierung

Ein Array kann direkt mit Werten gefüllt werden, um es zu initialisieren. Danach ist das Array fix. Seine Länge kann nicht mehr geändert werden.

Typ[] Name = {Inhalt};

Bsp 1:

int[] arr = {2, 6, 8, 9, 1}

Dieses Array ist vom Typ integer. Es beinhaltet die Zahlen 2, 6, 8, 9, 1 in dieser Reihenfolge. Dementsprechend beträgt die Länge dieses Arrays 5.

Bsp 2:

char[] arr2 = {'d', 'e', 'a'}

Dieses Array ist vom Typ character. Es beinhaltet die Zeichen d, e, a in dieser Reihenfolge. Die Länge beträgt 3.

Bsp 3:

String[] arr3 = {"hello", "world", "foo", "bar"}

Dieses Array ist vom Typ String. Es beinhaltet die Zeichenketten hello, world, foo und bar.

Initalisierung mit new

Mit dem new-Operator kann ein Array auch initialisiert werden. Wenn man so das Array deklariert, muss seine maximale Länge angegeben werden.

Typ[] Name = new Typ[Länge]

Bsp:

int[] arr = new int[10];

Dieses Integer-Array besitzt die maximale Länge 10. Das Array wird mit Initialwerten gefüllt.

Verwendung

Speichern von Werten in einem Array

Name[Index] = Wert

Bsp:

arr[1] = 5;


Verwendung der Werte

Aufbau der Indexe des Arrays

Jedes Element eines Arrays hat einen Index. Die Zählung beginnt mit 0.


Länge eines Arrays

Die Länge eines Arrays kann durch Name des Arrays .length rausgefunden werden. Dieser Wert kann als Variable verwendet werden.

Laenge = arr.length;

Der Variable Laenge wird die Länge des Arrays arr zugewiesen.


Arraybefüllung mittels Schleife

Ein Array kann auch mit Hilfe von Schleifen gefüllt werden. Sowohl Indexe als auch Werte können Variablen sein. Wichtig hierbei ist, dass die Länge n ist, die Indexe aber von 0 bis n-1 geht.

Bsp:

for(int i = 0; i < arr.length; ++i)
{
  arr[i] = i*2;
}

Jedem Element dieses Arrays wird der doppelte Indexwert zugewiesen.

Mehrdimensionale Arrays

Arrays können, theoretisch, unendlich viele Dimensionen besitzen. Mehrdimensionale Arrays werden ähnlich deklariert, initialisiert und verwendet wie die hier bisher behandelten eindimensionalen Arrays.


Zweidimensionales Array

Ein 2-Dimensionales Array kann man sich als Matrix vorstellen. Jedes Element hat nun zwei Indexe.


Deklaration eines 2-d Arrays

Typ[][] 2arr;


Initalisierung eines 2-d Arrays

Typ[][] 2arr = { {Wert 1, Wert 2} , {Wert 1, Wert 2}}


oder

Typ[][] 2arr = [5][4];


Verwendung eines 2-d Arrays

Name[Index x][Index y] = Wert;

Weitere Beispiele

Eine n x n-große Matrix soll programmiert werden. Dabei soll der Wert der Elemente die Summe der verdoppelten Indexe sein.

public static int[][] rechne(int n){
int[n][n] erg;

for(int i = 0; i < n; i++){
   for(int j = 0; j < n; j++){
       erg[i][j] = 2*i+2*j;
   } 
}

return erg;
}


Auch hier soll eine n x n große Matrix programmiert werden.

pulbic static int[][] rechne2(int n){
int[n][n] erg;

for (int i = 0; i < n; i++){
    for(int j = 0; j < n; j++)
       if(i == 0 && j == 0){
          erg[0][0] = 1;
       }
       else if(i == 0){
            erg[0][j] = 2*j;
            }
            else if(j == 0){
                 erg[i][0] = 2*i;
                 }
                 else{
                      erg[i][j] = erg[i-1]+erg[j-1];
                     }
     }
}
}