inizializzazione di un array booleano in java


Ho questo codice

public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;

Qualcuno potrebbe dirmi cosa sto sbagliando esattamente qui e come lo correggerei? Ho solo bisogno di inizializzare tutti gli elementi dell'array in falso booleano. grazie

Author: BalusC, 2010-03-02

5 answers

Ho solo bisogno di inizializzare tutti gli elementi dell'array in falso booleano.

Utilizzare boolean[] in modo che tutti i valori predefiniti siano false:

boolean[] array = new boolean[size];

Oppure usa Arrays#fill() per riempire l'intero array con Boolean.FALSE:

Boolean[] array = new Boolean[size];
Arrays.fill(array, Boolean.FALSE);

Si noti inoltre che l'indice dell'array è basato su zero. La riga freq[Global.iParameter[2]] = false; come hai lì causerebbe ArrayIndexOutOfBoundsException. Per ulteriori informazioni sugli array in Java, consultare questo tutorial di base di Oracle.

 240
Author: BalusC, 2013-01-02 16:17:51

L'array verrà inizializzato su false quando lo si alloca.

Tutti gli array in Java vengono inizializzati al valore predefinito per il tipo. Ciò significa che gli array di int sono inizializzati su 0, gli array di booleani sono inizializzati su false e gli array di tipi di riferimento sono inizializzati su null.

 16
Author: Jørgen Fogh, 2013-11-20 21:58:33

Gli array in Java iniziano l'indicizzazione a 0. Quindi nel tuo esempio ti riferisci a un elemento che si trova al di fuori dell'array di uno.

Probabilmente dovrebbe essere qualcosa come freq [Globale.iParametro[2] -1] = falso;

Dovresti scorrere l'array per inizializzarlo tutto, questa riga inizializza solo l'ultimo elemento.

In realtà, sono abbastanza sicuro che false sia predefinito per i booleani in Java, quindi potrebbe non essere necessario inizializzare affatto.

Cordiali saluti

 9
Author: Big Endian, 2010-03-02 16:43:29

Verranno inizializzati su false per impostazione predefinita. In Java gli array vengono creati su heap e ad ogni elemento dell'array viene assegnato un valore predefinito a seconda del suo tipo. Per boolean tipo di dati il valore predefinito è false.

 5
Author: codaddict, 2010-03-02 16:42:23

Freq booleano statico pubblico [] = nuovo booleano [Globale.iParametro[2]];

Globale.iParametro[2]:

Dovrebbe essere il valore const

 2
Author: oneat, 2010-03-02 16:42:18