Domanda Come posso dichiarare e inizializzare un array in Java?


Come posso dichiarare e inizializzare un array in Java?


1613
2017-07-29 14:22


origine


risposte:


È possibile utilizzare la dichiarazione di matrice o il letterale di matrice (ma solo quando si dichiara e si influisce subito sulla variabile, non è possibile utilizzare valori letterali di matrice per riassegnare una matrice).

Per i tipi primitivi:

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

Per le classi, per esempio String, è lo stesso:

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

Il terzo modo di inizializzare è utile quando dichiari prima la matrice e poi la inizializzi. Il cast è necessario qui.

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

2188
2017-07-09 21:59



Ci sono due tipi di array.
 

Una matrice dimensionale

Sintassi per i valori predefiniti:

int[] num = new int[5];

O (meno preferito)

int num[] = new int[5];

Sintassi con i valori forniti (inizializzazione variabile / campo):

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

O (meno preferito)

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

Nota: per comodità int [] num è preferibile perché indica chiaramente che stai parlando di array. Altrimenti nessuna differenza. Affatto.

Array multidimensionale

Dichiarazione

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

O

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

O

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

Inizializzazione

 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;

O

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

Array Ragged (o Array non rettangolare)

 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];

Quindi qui stiamo definendo le colonne esplicitamente.
Un altro modo: 

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

Per l'accesso:

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

In alternativa:

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

Gli array frastagliati sono array multidimensionali.
Per la spiegazione vedere il dettaglio della matrice multidimensionale a i tutorial ufficiali di java


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};

è anche valido, ma preferisco le parentesi dopo il tipo, perché è più facile vedere che il tipo della variabile è in realtà una matrice.


116
2017-07-29 14:28



Esistono vari modi in cui è possibile dichiarare un array in Java:

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

Puoi trovare maggiori informazioni nel Tutorial su Sun. sito e il JavaDoc.


32
2017-07-29 14:29



Trovo che sia utile se capisci ogni parte:

Type[] name = new Type[5];

Type[] è il genere del variabile nome chiamato ("nome" è chiamato il identificatore). Il "Tipo" letterale è il tipo di base e le parentesi indicano che questo è il tipo di matrice di quella base. I tipi di array sono a loro volta tipi diversi, il che consente di creare array multidimensionali come Type[][] (il tipo di matrice di Tipo []). La parola chiave new dice di allocare memoria per il nuovo array. Il numero tra la staffa indica quanto grande sarà il nuovo array e quanta memoria allocare. Ad esempio, se Java conosce il tipo di base Type prende 32 byte e vuoi un array di dimensione 5, deve allocare internamente 32 * 5 = 160 byte.

Puoi anche creare array con i valori già presenti, come ad esempio

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

che non solo crea lo spazio vuoto ma lo riempie di quei valori. Java può dire che i primitivi sono numeri interi e che ce ne sono 5, quindi la dimensione dell'array può essere determinata implicitamente.


26
2018-06-04 06:02



Quanto segue mostra la dichiarazione di un array, ma l'array non è inizializzato:

 int[] myIntArray = new int[3];

Quanto segue mostra la dichiarazione e l'inizializzazione dell'array:

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

Ora, quanto segue mostra anche la dichiarazione e l'inizializzazione dell'array:

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

Ma questo terzo mostra la proprietà della creazione anonima di oggetti array che è indicata da una variabile di riferimento "myIntArray", quindi se scriviamo solo "new int [] {1,2,3};" allora è così che può essere creato un oggetto-array anonimo.

Se scriviamo semplicemente:

int[] myIntArray;

questa non è una dichiarazione di array, ma la seguente dichiarazione rende completa la dichiarazione di cui sopra:

myIntArray=new int[3];

26
2017-07-29 14:25



In alternativa,

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

Questo dichiara un array chiamato arrayName di dimensione 10 (hai elementi da 0 a 9 da usare).


22
2017-07-29 15:56