2013-12-16 10 views
16

Esiste un modo semplice per creare un ArrayList<Boolean> utilizzando Java e impostarli inizialmente su False senza eseguire il looping e assegnando ognuno a false?Impostare tutti i valori di ArrayList <Boolean> su false in istanza

+0

è tentato di utilizzare SparseBooleanArray? https://developer.android.com/reference/android/util/SparseBooleanArray.html –

+2

Cosa intendi impostando inizialmente tutti su 'false'? ArrayList è vuoto inizialmente quando viene creato. La tua domanda avrebbe avuto più senso se tu parlassi di array. –

+0

Beh, inizialmente so esattamente quanti ne vuoi creare, ma possono essere aggiunti o rimossi, quindi devi usare un arraylist e non puoi usare un array. –

risposta

30

Fate come questo

List<Boolean> list=new ArrayList<Boolean>(Arrays.asList(new Boolean[10])); 
Collections.fill(list, Boolean.TRUE); 
+0

Questo funziona solo se l'elenco è stato compilato in precedenza. –

+4

'new new Boolean (true)' crea oggetti non necessari. Dovresti invece usare 'Boolean.TRUE'. – assylias

+0

'Boolean.TRUE' non è necessario. Basta usare 'true' – ZhekaKozlov

4

È possibile utilizzare il metodo fill da Collections:

Collections.fill(list, Boolean.FALSE); 

Un'altra opzione potrebbe essere utilizzando un array invece di un List:

boolean[] arr = new boolean[10]; 

Questo verrà inizializzato automaticamente su false poiché il valore predefinito di boolean è false.

+0

' new Boolean.FALSE' non compila ... –

0

si potrebbe anche utilizzare la seguente

Arrays.fill(list, Boolean.FALSE); 
0
ArrayList<Boolean> list = new ArrayList<Boolean>(size); 
list.addAll(Collections.nCopies(size, Boolean.FALSE)); 
0

Uso Collections.nCopies:

List<Boolean> list = new ArrayList<>(Collections.nCopies(n, false)); 
Problemi correlati