2530 Stimmen

Wie deklariere und initialisiere ich ein Array in Java?

Wie deklariere und initialisiere ich ein Array in Java?

10voto

Sylhare Punkte 4182

Wenn Sie mit "Array" die Verwendung von java.util.Arrays kann man das auch so machen:

List<String> number = Arrays.asList("1", "2", "3");

Out: ["1", "2", "3"]

Dieser hier ist ziemlich einfach und geradlinig.

8voto

Kirill Podlivaev Punkte 406

Deklarieren und Initialisieren für Java 8 und höher. Erstellen Sie ein einfaches Integer-Array:

int [] a1 = IntStream.range(1, 20).toArray();
System.out.println(Arrays.toString(a1));
// Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Erstellen Sie ein Zufallsfeld für ganze Zahlen zwischen [-50, 50] und für Paschas [0, 1E17]:

int [] a2 = new Random().ints(15, -50, 50).toArray();
double [] a3 = new Random().doubles(5, 0, 1e17).toArray();

Zweierpotenzierte Sequenz:

double [] a4 = LongStream.range(0, 7).mapToDouble(i -> Math.pow(2, i)).toArray();
System.out.println(Arrays.toString(a4));
// Output: [1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0]

Für String[] müssen Sie einen Konstruktor angeben:

String [] a5 = Stream.generate(()->"I will not squeak chalk").limit(5).toArray(String[]::new);
System.out.println(Arrays.toString(a5));

Mehrdimensionale Arrays:

String [][] a6 = List.of(new String[]{"a", "b", "c"} , new String[]{"d", "e", "f", "g"})
    .toArray(new String[0][]);
System.out.println(Arrays.deepToString(a6));
// Output: [[a, b, c], [d, e, f, g]]

7voto

Samuel Newport Punkte 175

Um Arrays der Klasse Objects zu erstellen, können Sie die java.util.ArrayList . um ein Array zu definieren:

public ArrayList<ClassName> arrayName;
arrayName = new ArrayList<ClassName>();

Weisen Sie dem Array Werte zu:

arrayName.add(new ClassName(class parameters go here);

Aus dem Array lesen:

ClassName variableName = arrayName.get(index);

Anmerkung:

variableName ist ein Verweis auf das Array, was bedeutet, dass die Manipulation variableName wird manipulieren arrayName

für Schleifen:

//repeats for every value in the array
for (ClassName variableName : arrayName){
}
//Note that using this for loop prevents you from editing arrayName

for-Schleife, die es Ihnen ermöglicht, die arrayName (herkömmliche for-Schleife):

for (int i = 0; i < arrayName.size(); i++){
    //manipulate array here
}

5voto

Zia Punkte 575

Ein Array hat zwei Grundtypen.

Statisches Array: Array mit fester Größe (seine Größe sollte zu Beginn angegeben werden und kann später nicht mehr geändert werden)

Dynamisches Array: Eine Größenbeschränkung ist dabei nicht vorgesehen. (Reine dynamische Arrays gibt es in Java nicht, stattdessen wird List bevorzugt).

Um ein statisches Array von Integer, String, Float, etc. zu deklarieren, verwenden Sie die folgenden Deklarations- und Initialisierungsanweisungen.

int[] intArray = new int[10];
String[] intArray = new int[10];
float[] intArray = new int[10];

// Here you have 10 index starting from 0 to 9

Um dynamische Funktionen zu nutzen, müssen Sie List verwenden... Liste ist rein dynamisches Array und es ist nicht notwendig, die Größe zu Beginn anzugeben. Im Folgenden finden Sie die korrekte Art und Weise, eine Liste in Java zu deklarieren -

ArrayList<String> myArray = new ArrayList<String>();
myArray.add("Value 1: something");
myArray.add("Value 2: something more");

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.

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