Klassen und Objekte

Arrays nutzen

Erste Arrays

Deklariere zwei Arrays long[] x und long[] y und initialisiere sie mit fünf Zufallszahlen im Wertebereich 10 und 500.

Laufe über das Array und gib x/y-Pärchen aus. Enthält z.B. x = {1, 2, 3} und y = {1, 4, 9} soll die Ausgabe auf dem Bildschirm sein:

(1,1), (2,4), (3,9)

Studiere das Beispiel unter http://www.w3schools.com/graphics/tryit.asp?filename=trysvg_polygon. Generiere auf der Konsole eine Ausgabe, die man direkt in das Textfeld auf der Webseite setzen kann. Das generierte XML soll ein Polygon für das eigene Array von Koordinaten zeichnen.

Teil-Lösung

Der Umdreher

Schreibe eine Klassenmethode reverse(...), die ein gegebenes Array umdreht, d. h., dass das erste Element nach der Operation hinten steht und das letzte Element vorne.

public static void reverse( double[] array ) {
  if ( array == null )
    return;
  // ...
}

Lösung

Arithmetische Ausdrücke vorlesen **

Ein mathematischer Ausdruck kann aus Zahlen und Operatoren bestehen. 1 - 2 * 3 / 4 ist ein Beispiel dafür. Wenn dieser Ausdruck vorgelesen werden soll, dann wird ein Computer Folgendes sagen: "eins minus zwei mal drei durch vier". Schreibe eine Methode readTerm(char[] term) mit Array-Operationen, die die Zeichenkette "vorliest". Um es einfach zu machen, beschränken wir uns die Zahlen auf 0..9.

Wer hat den Kleinsten? *

Gegeben ist eine Menge von java.awt.Point-Objekten in einem Array points:

Point[] points = { new Point(10, 20), new Point(12, 2), new Point(44, 4) };

Lösung

Der Typumwandler mit Varargs *

Einen String s verwandelt Integer.parseInt(s) in eine Ganzzahl vom Typ int. Eine Liste von Strings soll in eine Sammlung von Ganzzahlen (int) konvertiert. werden. Diese Arbeit soll eine Klassenmethode erledigen:

public static int[] parseInts( String... array ) {
  ...
}

Aufrufen kann man die Methode etwa wie folgt:

String[] numbersAsString = { "1", "234", "333" };
int[]    numbers1 = parseInts( numbersAsString );
int[]    numbers2 = parseInts( "1", "234", "333" );

Lösung

Die Utility-Klasse Arrays

Die Klasse Arrays

Eine nette Hilfsklasse Arrays bietet an, ein Array zu sortieren. Teste dies an der Menge mit den Zufallszahlen. Beobachte die Signaturen der Methode sort(...). Welche Typen werden unterstützt?

Baue ein Fließkomma-Array mit zehn Elementen auf. Fülle es mit Zufallszahlen, die sich mit random() aus java.lang.Math erzeugen lassen. Gib anschließend das Array auf dem Bildschirm aus. Sortiere das Array.

Kann die sort(...)-Methode wirklich alles ohne Weiteres sortieren? Wo könnte ein Problem liegen?

Vergleichen und Ausgabe von Arrays über die Klasse java.util.Arrays

Teste jeweils die statischen Methode toString(...) und deepToString(...) der Klasse Arrays an folgenden Arrays:

Object[] o = { "Eins", "Zwei", "Polizei", new int[]{1, 2, 3} };
Object[] p = { "Eins", "Zwei", "Polizei", new int[]{1, 2, 3} };

Vergleiche auch die statischen Methoden equals(...) und deepEquals(...).

Anagrammtest *

Schreibe eine Methode isAnagramm(String s1, String s2), um zu testen, ob zwei Zeichenketten Anagramme sind. In einem Anagramm kommen dieselben Zeichen möglicherweise in anderer Reihenfolge vor. Zum Beispiel stellen folgende Zeilen Anagramme dar:

Gebe jeweils die Eingabezeilen und eine der folgenden Meldungen aus: "Ja, obige Zeilen sind Anagramme" oder "Nein, obige Zeilen sind keine Anagramme." Man kann davon ausgehen, dass die Zeilen keine Groß- und Kleinbuchstaben sowie Leerzeichen enthalten.

Optional: Bei dem Vergleich der Eingabezeilen sollen Leerzeichen ignoriert und Groß- und Kleinbuchstaben als gleich betrachtet werden.

Lösung