InfoHome | Themen | Projekte | Links | Software |
|
Arrays (Reihungen)
Ein Array ist eine Datenstruktur, die mehrere Elemente gleichen Typs aufnehmen kann. Die Länge eines Arrays wird bei seiner Erzeugung festgelegt und kann danach nicht mehr verändert werden. Ein Array-Element ist ein Wert, der in einem Array gespeichert ist. Der Zugriff auf ein solches Array-Element erfolgt über die Position, an der das Element im Array steht. Jeder Array-Position ist ein Indexwert eindeutig zugeordnet. Die Indizierung eines Array beginnt mit 0 und geht bis (Arraylänge - 1). Einfaches ProgrammHier ist ein einfaches Programm, das ein Array erzeugt, einige Werte in diesem Array speichert und alle Array-Elemente ausgibt.
public class ArrayDemo {
Deklaration eines ArraysDiese Zeile Code aus dem Beispielprogramm deklariert eine Array-Variable: int[] einArray; // deklariere ein Array aus ganzen Zahlen Ein Array wird syntaktisch wie eine einfache Variable deklariert mit dem Unterschied, dass an den Typnamen eckige Klammern angehängt werden. Im Beispielprogramm wird ein Array deklariert, das ganze Zahlen (Integer) aufnehmen kann. Hier sind einige weitere Deklarationen von Arrays, die andere Datentypen aufnehmen können:
boolean[] einArrayAusBoolschenWerten;
Zum Zeitpunkt der Deklaration muss noch nicht festgelegt werden, wie viele Elemente das Array haben soll. Erzeugung eines ArraysEin Array wird mit Hilfe des new-Operators erzeugt. Der folgende Befehl fordert den für ein Array aus 10 Integer-Werten benötigten Speicherplatz an und weist diesen der bereits deklarierten Variable einArray zu: einArray = new int[10]; // erzeuge ein Array aus ganzen Zahlen Ein Array muss bereits erzeugt worden sein, bevor das erste Mal darauf zugegriffen werden kann! Ist bereits zum Deklarationszeitpunkt klar, wie viele Elemente das Array haben soll, können Deklaration und Erzeugung zusammen geschrieben werden. int[] einArray = new int[10]; Zugriff auf Array-ElementeNachdem das Array nun erzeugt und Speicherplatz für Array-Elemente zugewiesen worden ist, weist das Programm den Array-Elementen Werte zu:
for (int i = 0; i<einArray.length; i++) {
Der Zugriff auf ein Array-Element - sowohl zur Wertzuweisung als auch zur Ausgabe - erfolgt über seinen Index, der dem Array-Namen in eckigen Klammern angehängt wird. Bestimmung der Länge eines ArraysZur Bestimmung der Länge eines Arrays schreibt man arrayname.length Achtung: length ist keine Methode, sondern eine spezielle Eigenschaft von Arrays. Deshalb hier auch keine angehängten runden Klammern. Innerhalb der for-Schleife im Beispielprogramm, die jedem Array-Element einen Wert zuweist und diesen ausgibt, wird einArray.length dazu benutzt, die Schleifenbedingung zu formulieren. Deklaration, Erzeugung und Initialisierung in einem SchrittIn Java gibt es eine abkürzende Schreibweise für die Deklaration, Erzeugung und Initialisierung eines Arrays: int[] zahlen = {1, 12, 42, 42, 42}; Die Länge des so angelegten Arrays ergibt sich anhand der Anzahl der zugewiesenen Elemente. Aufgaben1) Gegeben seien zwei Arrays a und b vom Typ int[]. a) Warum kann man die beiden Felder a und b nicht mittels a==b miteinander vergleichen? b) Wie könnte ein Programmstück aussehen, das beide Felder miteinander vergleicht? Dabei seien zwei Felder genau dann gleich, wenn sie die gleiche Länge haben und alle ihre Komponenten paarweise übereinstimmen. Lösung: public class ZweiArraysAufGleichheitTesten { 2) Programmieren Sie ein Palindrom-Tester. Palindrome sind Wörter (Sätze), die sich in gleicher Bedeutung von vorne nach hinten und von hinten nach vorne lesen lassen. Beispiele wären Anna, Otto, ... Das Programm soll das zu testende Wort in einem char-Array speichern. char[] wort = {'a', 'n', 'n', 'a'}; Mit Hilfe einer Schleife soll nun der Test realisiert werden und eine entsprchende Ausgabe generiert werden (Palindrom oder nicht Palindrom?). Die Eingaben sollen zunächst nur aus Kleinbuchstaben bestehen und keine Leerzeichen enthalten. Lösung: public class PalindromTest { 3) Der Palindrom-Tester soll so erweitert werden, dass auch Satz-Palindrome wie "Ein Neger mit Gazelle zagt im Regen nie." erkannt werden. Gehen Sie dazu folgendermaßen vor:
|
© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück |