2563 Stimmen

Wie deklariere und initialisiere ich ein Array in Java?

Wie deklariere und initialisiere ich ein Array in Java?

5voto

Arundev Punkte 1230

Hier gibt es eine Menge Antworten. Ich füge ein paar knifflige Möglichkeiten hinzu, um Arrays zu erstellen (aus einer Prüfung Standpunkt ist es gut, dies zu wissen)

  1. Deklarieren und Definieren eines Arrays

    int intArray[] = new int[3];

    Dadurch wird ein Array der Länge 3 erstellt. Da es einen primitiven Typ, nämlich int, enthält, werden alle Werte standardmäßig auf 0 gesetzt. Zum Beispiel,

    intArray[2]; // Will return 0
  2. Verwendung von eckigen Klammern [] vor dem Variablennamen

    int[] intArray = new int[3];
    intArray[0] = 1;  // Array content is now {1, 0, 0}
  3. Initialisierung und Bereitstellung von Daten für das Array

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

    Diesmal ist es nicht notwendig, die Größe in der Klammer anzugeben. Auch eine einfache Variante davon ist:

    int[] intArray = {1, 2, 3, 4};
  4. Ein Array der Länge 0

    int[] intArray = new int[0];
    int length = intArray.length; // Will return length 0

    Ähnlich bei mehrdimensionalen Arrays

    int intArray[][] = new int[2][3];
    // This will create an array of length 2 and
    //each element contains another array of length 3.
    // { {0,0,0},{0,0,0} }
    int lenght1 = intArray.length; // Will return 2
    int length2 = intArray[0].length; // Will return 3

Verwendung von eckigen Klammern vor der Variablen:

    int[][] intArray = new int[2][3];

Es ist völlig in Ordnung, wenn Sie am Ende eine Kastenklammer anbringen:

    int[] intArray [] = new int[2][4];
    int[] intArray[][] = new int[2][3][4]

Einige Beispiele

    int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
    int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
    int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}}
    // All the 3 arrays assignments are valid
    // Array looks like {{1,2,3},{4,5,6}}

Es ist nicht zwingend erforderlich, dass jedes innere Element die gleiche Größe hat.

    int [][] intArray = new int[2][];
    intArray[0] = {1,2,3};
    intArray[1] = {4,5};
    //array looks like {{1,2,3},{4,5}}

    int[][] intArray = new int[][2] ; // This won't compile. Keep this in mind.

Wenn Sie die obige Syntax verwenden, müssen Sie darauf achten, dass Sie die Werte für die Vorwärtsrichtung in eckigen Klammern angeben. Andernfalls wird es nicht kompiliert. Einige Beispiele:

    int [][][] intArray = new int[1][][];
    int [][][] intArray = new int[1][2][];
    int [][][] intArray = new int[1][2][3];

Ein weiteres wichtiges Merkmal ist Kovariante

    Number[] numArray = {1,2,3,4};   // java.lang.Number
    numArray[0] = new Float(1.5f);   // java.lang.Float
    numArray[1] = new Integer(1);    // java.lang.Integer
   // You can store a subclass object in an array that is declared
   // to be of the type of its superclass.
   // Here 'Number' is the superclass for both Float and Integer.

   Number num[] = new Float[5]; // This is also valid

WICHTIG: Bei referenzierten Typen ist der im Array gespeicherte Standardwert null.

5voto

Zgpeace Punkte 2935

Ein Array kann sowohl primitive Datentypen als auch Objekte einer Klasse enthalten, abhängig von der Definition des Arrays. Bei primitiven Datentypen werden die tatsächlichen Werte in zusammenhängenden Speicherplätzen gespeichert. Im Falle von Objekten einer Klasse werden die eigentlichen Objekte im Heap-Segment gespeichert.

Eindimensionale Arrays:

Die allgemeine Form der Deklaration eines eindimensionalen Arrays lautet

type var-name[];
OR
type[] var-name;

Instanziierung eines Arrays in Java

var-name = new type [size];

Zum Beispiel,

int intArray[];  // Declaring an array
intArray = new int[20];  // Allocating memory to the array

// The below line is equal to line1 + line2
int[] intArray = new int[20]; // Combining both statements in one
int[] intArray = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Accessing the elements of the specified array
for (int i = 0; i < intArray.length; i++)
    System.out.println("Element at index " + i + ": "+ intArray[i]);

Ref: Arrays in Java

4voto

Clement.Xu Punkte 1120

Eine weitere Möglichkeit, ArrayList zu deklarieren und zu initialisieren:

private List<String> list = new ArrayList<String>(){{
    add("e1");
    add("e2");
}};

4voto

Konstantin Spirin Punkte 19144

Bei der Inferenz des Typs lokaler Variablen müssen Sie den Typ nur einmal angeben:

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

Oder

int[] values = { 1, 2, 3 }

2voto

splash Punkte 12777

Manchmal verwende ich dies für die Initialisierung von String-Arrays:

private static final String[] PROPS = "lastStart,storetime,tstore".split(",");

Es reduziert das Zitiergewirr um den Preis einer teureren Initialisierung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X