Wie deklariere und initialisiere ich ein Array in Java?
Antworten
Zu viele Anzeigen?Im Folgenden wird die Deklaration eines Arrays gezeigt, aber das Array ist nicht initialisiert:
int[] myIntArray = new int[3];
Im Folgenden werden die Deklaration sowie die Initialisierung des Arrays gezeigt:
int[] myIntArray = {1,2,3};
Im Folgenden wird nun auch die Deklaration sowie die Initialisierung des Arrays gezeigt:
int[] myIntArray = new int[]{1,2,3};
Aber diese dritte zeigt die Eigenschaft der anonymen Array-Objekt-Erstellung, die durch eine Referenzvariable "myIntArray" gezeigt wird, also wenn wir nur "new int[]{1,2,3};" schreiben, dann ist dies, wie anonyme Array-Objekt erstellt werden kann.
Wenn wir nur schreiben:
int[] myIntArray;
Dies ist keine Deklaration eines Arrays, aber die folgende Anweisung macht die obige Deklaration vollständig:
myIntArray=new int[3];
Für den Fall, dass Sie etwas Dynamischeres wünschen, gibt es auch die Listenschnittstelle. Diese ist zwar nicht so leistungsfähig, dafür aber flexibler:
List<String> listOfString = new ArrayList<String>();
listOfString.add("foo");
listOfString.add("bar");
String value = listOfString.get(0);
assertEquals( value, "foo" );
Es gibt im Wesentlichen zwei Möglichkeiten, ein Array zu erstellen:
Diese für ein leeres Feld:
int[] array = new int[n]; // "n" being the number of spaces to allocate in the array
Und diese hier für ein initialisiertes Array:
int[] array = {1,2,3,4 ...};
Sie können auch mehrdimensionale Arrays erstellen, etwa so:
int[][] array2d = new int[x][y]; // "x" and "y" specify the dimensions
int[][] array2d = { {1,2,3 ...}, {4,5,6 ...} ...};
In Java 9
Verwendung verschiedener IntStream.iterate
y IntStream.takeWhile
Methoden:
int[] a = IntStream.iterate(10, x -> x <= 100, x -> x + 10).toArray();
Out: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
int[] b = IntStream.iterate(0, x -> x + 1).takeWhile(x -> x < 10).toArray();
Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In Java 10
Die Verwendung des Inferenz lokaler Variablentypen :
var letters = new String[]{"A", "B", "C"};