Habe ich Arrays in Java richtig verstanden?

...komplette Frage anzeigen

4 Antworten

Ich erklärs mal, wie es mir mal sehr gut erklärt wurde:

Ein Array ist ein Regal mit verschiedenen, durchnummerierten Schubladen.

int[ ] arr = new int[5];

Du gehst zur IKEA und kaufst dir ein Regal mit genau 5 Schubladen.

Die Schubladen sind so ausgelegt, dass du ints reinbekommst. Und nichts anderes. Ansonsten trifft dich nämlich der Blitz des Java-Typecheck-Gottes ;).

Logischerweise passen in dieses Regal auch nur 5 ints - und nicht mehr.

arr[2] = 42;

Du läufst zu deinem Regal. Öffnest die Schublade, wo die Nummer 2 drauf und steckst die 42 rein.

blackoutX2 02.07.2017, 18:18

Also hatte ich einigermaßen recht gehabt? :o

0
Tuxgamer2 02.07.2017, 18:33
@blackoutX2

Na so in etwa.

"Bsp. Vom Datentyp int kann ein Array beliebig viele Zahlen in sich speichern."

Ne - wie bereits gesagt: Ein Array hat eine maximale Größe, die du beim Erstellen angeben musst. Es gibt nebenbei auch eine Limitierung, wie groß Arrays maximal in Java werden können - das ist aber eine doch große Zahl.

1

Du kannst Dir ein  Array als eine Tabelle vorstellen, z.B. ganz einfach 1 Tabellenspalte mit 10 Zeilen, also 10 Zellen.

In jede Zelle kannst Du etwas hineinschreiben. Die Zellen sprichst Du über ihre Nummerierung an, das ist der Index.

Also array[2] verweist auf Zelle 2 etc.

(In Deinem Beispieltext fängt die Nummerierung mit 0 an, also wäre dann der Verweis auf die 2. Zelle: array[1] - das ist eben sprachspezifisch unterschiedlich.)

Du kannst auch mehrdimensionale Arrays erzeugen, dann wird in Zelle 2 ein weiteres Array abgelegt. z.B. auf die Zelle 5 in diesem weiteren Array greifst Du dann so zu: array[2,5] (Schreibweise wiederum je nach Sprache unterschiedlich)

Du kannst ein Array auch als temporäre Datenbank (nur zur Programmlaufzeit) in Deinem Code betrachten, nichts anderes ist es nämlich. Eine echte Datenbank ist im Prinzip genauso strukturiert.

Ein Array besteht grundlegend nur aus Speicher. Mit den Zahlen referenzierst du nur die entsprechenden Zellen. Diese Zahlen werden Index genannt.

int[] arr = {1, 2, 3, 4, 5};
int i = 2;
int get = arr[i];

Die Variable i wäre hier also der Index.

Ein Array kann nicht beliebig viele Variablen in sich speichern. Bei der Erzeugung gibst du an, wieviele Zellen das Array haben soll und so viele hat es dann, das kannst du auch nicht mehr ändern.

Zu dem Teil, den du nicht verstehst:

Ich denke, der Text will nur folgendes Ausdrücken:

Wenn du ein int-array für 5 ints deklarierst, dann hat das Array die Stellen 0,1,2,3,4.

Ein beliebter Anfängerfehler ist es, zu glauben, dass der Index für ein Array der Größe x auch bis x geht, dies stimmt aber nicht, da die erste Stelle den Index 0 hat, ist der maximale Index x-1. Versucht man dies, fliegt eine ArrayIndexOutOfBoundsException.

Im obigen Code hätte die Variable "get" beispielsweise nach der Ausführung die Belegung "3" und nicht "2", wie man vielleicht angenommen hätte.

Der Index ist so zu sagen ein Verzeichnis 


int[ ] arr = new int[5] 

heißt du kannst 4 Werte in diesem Array speichern. Es beginnt immer bei 0 an zu zählen. Und ja der Rest hat gestimmt :D

gfntom 02.07.2017, 17:33

Man kann natürlich 5 Werte in diesem Array speichern.

1

Was möchtest Du wissen?