Beruflich Dokumente
Kultur Dokumente
Array-Erzeugung
1) Explizit mittels new
Syntax: new Typ[int-Ausdruck]
a = new int[5];
3) Kombination
a = new int[] { 1, 2, 3}; // Längenangabe nicht erlaubt!!
- Das Array mit Hilfe von java.util.Arrays mit dem gleichen Wert füllen.
int[] a = new int[4];
java.util.Arrays.fill(a, 5);
1. Möglichkeit:
Ein neues Array erzeugen und das Array elementweise kopieren:
int [] b = new int[a.length]; // neues Array erzeugen
for (int i = 0; i < a.length; ++i)
{
b[i] = a[i]; // Element kopieren
}
2. Möglichkeit:
Ein neues Array erzeugen und das ganze Array mit Hilfe der Klassenmethode
System.arraycopy kopieren.
int [] b = new int[a.length]; // neues Array erzeugen
System.arraycopy(a, 0, b, 0, a.length);
Array einlesen
Elemente eines Arrays müssen einzeln eingelesen werden.
int [] a = new int[10];
for (int i = 0; i < a.length; ++i){
a[i] = ReadUtil.nextInt("a[" + i + "] = ");
}
Array ausgeben
for (int i = 0; i < a.length; ++i) {
out.print( "a[" + i + "] = " + a[i] + "\t");
}
out.println(java.util.Arrays.toString(a));
oder
Tran / Hettel GDI 2 9
Arrays
length
b 3
b[0] b[1] b[2]
b[0] = "OK";
b[1] = new String("Test");
b 3
b[0] b[1] b[2]
"OK" "Test"
Beachte
String[] b = new String[3];
b[0] = "OK";
b[1] = "test";
b = new String[5]; // Objekte "OK" und "test" gehen verloren
a[0][0]
3
a 2
a[0] a[0][1]
a[1] 2
a[2]
2
3
d 1
d[0]
1
d[1] 2
1 2
d[2]
3
1 2 3
Entsprechend:
int[][][] x = new int[3][4][];
char[][][][] c = new char[3000][][][];
Beispiel
double [][] d;
d = new double[3][];
for (int i = 0; i < d.length; ++i)
{
d[i] = new double[i+1];
for (int j = 0; j < d[i].length; ++j)
{
d[i][j]= ReadUtil.nextDouble("d[" + i+ "]["+ j + "] = ");
}
}
Typumwandlung
double[] x = {1, 2};
int[] y = { 1, 2};
x=y;
// Fehler !! ein int[] kann nicht double[] umgewandelt werden
x = (double []) y; // Auch Fehler
kopieren
squareSum
Man muss also ggf. mit einer Kopie oder mit einem Vermittler arbeiten.
Beispiel Sudoku
public static boolean sudoku(int[][] m, int zeile, int spalte)
{
// suche nach einem freien Feld
while (m[zeile][spalte] != 0)
{
spalte++;
if (spalte == m.length)
{
spalte = 0;
zeile++;
// haben wir alle Felder belegt? Trivialer Fall
if (zeile == m.length)
{
// wir sind fertig und haben einen Lösung gefunden
return true;
}
}
}
Beispiel Sudoku