Frage Wie deklariere und initialisiere ich ein Array in Java?


Wie deklariere und initialisiere ich ein Array in Java?


1613
2017-07-29 14:22


Ursprung


Antworten:


Sie können entweder eine Array-Deklaration oder ein Array-Literal verwenden (aber nur wenn Sie die Variable sofort deklarieren und beeinflussen, können Array-Literale nicht für die Neuzuweisung eines Arrays verwendet werden).

Für primitive Typen:

int[] myIntArray = new int[3];
int[] myIntArray = {1,2,3};
int[] myIntArray = new int[]{1,2,3};

Zum Beispiel für Klassen String, es ist das gleiche:

String[] myStringArray = new String[3];
String[] myStringArray = {"a","b","c"};
String[] myStringArray = new String[]{"a","b","c"};

Die dritte Art der Initialisierung ist nützlich, wenn Sie das Array zuerst deklarieren und dann initialisieren. Die Besetzung ist hier notwendig.

String[] myStringArray;
myStringArray = new String[]{"a","b","c"};

2188
2017-07-09 21:59



Es gibt zwei Arten von Arrays.
 

Eindimensionales Array

Syntax für Standardwerte:

int[] num = new int[5];

Oder (weniger bevorzugt)

int num[] = new int[5];

Syntax mit angegebenen Werten (Variable / Feldinitialisierung):

int[] num = {1,2,3,4,5};

Oder (weniger bevorzugt)

int num[] = {1, 2, 3, 4, 5};

Hinweis: Der Einfachheit halber ist int [] num vorzuziehen, da es deutlich aussagt, dass Sie hier über Array sprechen. Sonst kein Unterschied. Ganz und gar nicht.

Mehrdimensionales Array

Erklärung

int[][] num = new int[5][2];

Oder

int num[][] = new int[5][2];

Oder

int[] num[] = new int[5][2];

Initialisierung

 num[0][0]=1;
 num[0][1]=2;
 num[1][0]=1;
 num[1][1]=2;
 num[2][0]=1;
 num[2][1]=2;
 num[3][0]=1;
 num[3][1]=2;
 num[4][0]=1;
 num[4][1]=2;

Oder

 int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };

Ragged Array (oder nicht rechteckiges Array)

 int[][] num = new int[5][];
 num[0] = new int[1];
 num[1] = new int[5];
 num[2] = new int[2];
 num[3] = new int[3];

Hier definieren wir also explizit Spalten.
Ein anderer Weg: 

int[][] num={ {1}, {1,2}, {1,2,3,4,5}, {1,2}, {1,2,3} };

Für den Zugriff auf:

for (int i=0; i<(num.length); i++ ) {
    for (int j=0;j<num[i].length;j++)
        System.out.println(num[i][j]);
}

Alternative:

for (int[] a : num) {
  for (int i : a) {
    System.out.println(i);
  }
}

Ragged Arrays sind mehrdimensionale Arrays.
Zur Erklärung siehe mehrdimensionales Array-Detail bei die offiziellen Java-Tutorials


220
2017-07-29 14:29



Type[] variableName = new Type[capacity];

Type[] variableName = {comma-delimited values};



Type variableName[] = new Type[capacity]; 

Type variableName[] = {comma-delimited values};

ist auch gültig, aber ich bevorzuge die Klammern nach dem Typ, weil es einfacher ist zu sehen, dass der Typ der Variablen tatsächlich ein Array ist.


116
2017-07-29 14:28



Es gibt verschiedene Möglichkeiten, wie Sie ein Array in Java deklarieren können:

float floatArray[]; // Initialize later
int[] integerArray = new int[10];
String[] array = new String[] {"a", "b"};

Weitere Informationen finden Sie in der Sun-Anleitung Website und die JavaDoc.


32
2017-07-29 14:29



Ich finde es hilfreich, wenn Sie jeden Teil verstehen:

Type[] name = new Type[5];

Type[] ist der Art des Variable Name genannt ("Name" heißt die Kennung). Das Literal "Type" ist der Basistyp und die Klammern bedeuten, dass dies der Array-Typ dieser Basis ist. Array-Typen sind ihrerseits eigene Typen, mit denen Sie mehrdimensionale Arrays erstellen können Type[][] (der Array-Typ von Typ []). Das Schlüsselwort new sagt, um Speicher für das neue Array zu reservieren. Die Zahl zwischen den Klammern gibt an, wie groß das neue Array ist und wie viel Speicher zuzuweisen ist. Zum Beispiel, wenn Java den Basistyp kennt Type dauert 32 Bytes, und Sie möchten ein Array der Größe 5, 32 * 5 = 160 Bytes intern reservieren müssen.

Sie können auch Arrays mit den bereits vorhandenen Werten erstellen, z

int[] name = {1, 2, 3, 4, 5};

Das schafft nicht nur den leeren Raum, sondern füllt ihn mit diesen Werten. Java kann feststellen, dass die Primitive Ganzzahlen sind und dass es 5 von ihnen gibt, so dass die Größe des Arrays implizit bestimmt werden kann.


26
2018-06-04 06:02



Die folgende Abbildung zeigt die Deklaration eines Arrays, aber das Array ist nicht initialisiert:

 int[] myIntArray = new int[3];

Im Folgenden wird sowohl die Deklaration als auch die Initialisierung des Arrays gezeigt:

int[] myIntArray = {1,2,3};

Nun zeigt das Folgende auch die Deklaration sowie die Initialisierung des Arrays:

int[] myIntArray = new int[]{1,2,3};

Aber dieser dritte zeigt die Eigenschaft der anonymen Array-Objekterzeugung, auf die eine Referenzvariable "myIntArray" zeigt, also wenn wir nur "new int [] {1,2,3};" Dann kann so ein anonymes Array-Objekt erstellt werden.

Wenn wir nur schreiben:

int[] myIntArray;

Dies ist keine Deklaration von Array, aber die folgende Anweisung macht die obige Deklaration vollständig:

myIntArray=new int[3];

26
2017-07-29 14:25



Alternative,

// Either method works
String arrayName[] = new String[10];
String[] arrayName = new String[10];

Das deklariert ein Array namens arrayName von Größe 10 (Sie haben Elemente 0 bis 9 zu verwenden).


22
2017-07-29 15:56



Wenn Sie etwas dynamischeres wollen, gibt es auch das List-Interface. Dies wird nicht so gut funktionieren, ist aber flexibler:

List<String> listOfString = new ArrayList<String>();

listOfString.add("foo");
listOfString.add("bar");

String value = listOfString.get(0);
assertEquals( value, "foo" );

22
2018-01-28 19:19