Ich habe diesen Code
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
Könnte mir jemand sagen, was genau ich hier falsch mache und wie ich es korrigieren würde? Ich muss nur alle Array-Elemente mit Boolean false initialisieren. Danke
java
arrays
initialization
leba-lev
quelle
quelle
Boolean[] array
da es Ihnen erlaubt, drei Zustände für jedes Element zu haben :true
,false
undnull
, was für Fälle nützlich ist, in denen Sie feststellen möchten, dass etwas "nicht verarbeitet" wird.Das Array wird beim Zuweisen auf false initialisiert.
Alle Arrays in Java werden auf den Standardwert für den Typ initialisiert. Dies bedeutet, dass Arrays von Ints auf 0 initialisiert werden, Arrays von Booleschen Werten auf false initialisiert werden und Arrays von Referenztypen auf null initialisiert werden.
quelle
Boolean
nichtboolean
, also wird es standardmäßig verwendetnull
.Arrays in Java beginnen mit der Indizierung bei 0. In Ihrem Beispiel beziehen Sie sich also auf ein Element, das sich um eins außerhalb des Arrays befindet.
Es sollte wahrscheinlich so etwas wie freq [Global.iParameter [2] -1] = false sein;
Sie müssten das Array durchlaufen, um alles zu initialisieren. Diese Zeile initialisiert nur das letzte Element.
Eigentlich bin ich mir ziemlich sicher, dass false für Boolesche Werte in Java Standard ist, sodass Sie möglicherweise überhaupt nicht initialisieren müssen.
Freundliche Grüße
quelle
Boolean
nichtboolean
, also wird es standardmäßig verwendetnull
.Sie werden
false
standardmäßig auf initialisiert . In Java werden Arrays auf dem Heap erstellt und jedem Element des Arrays wird je nach Typ ein Standardwert zugewiesen. Für denboolean
Datentyp ist der Standardwertfalse
.quelle
Boolean
nichtboolean
, also wird es standardmäßig verwendetnull
.public static Boolean freq [] = new Boolean [Global.iParameter [2]];
Global.iParameter [2]:
Es sollte ein konstanter Wert sein
quelle