Mam ten kod
public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;
czy ktoś mógłby mi powiedzieć, co dokładnie robię źle i jak mam to poprawić? Muszę tylko zainicjować wszystkie elementy tablicy na wartość Boolean false. Dziękuję Ci
java
arrays
initialization
leba-lev
źródło
źródło
Boolean[] array
, ponieważ pozwala mieć trzy stany: dla każdego elementutrue
,false
oraznull
, co jest przydatne w przypadkach, gdy chcesz, aby pamiętać, że coś jest „nie przetworzone”.Tablica zostanie zainicjowana na false podczas jej przydzielania.
Wszystkie tablice w Javie są inicjowane z domyślną wartością dla tego typu. Oznacza to, że tablice wartości typu int są inicjalizowane na 0, tablice wartości logicznych są inicjowane na wartość false, a tablice typów referencyjnych są inicjowane na wartość null.
źródło
Boolean
, nieboolean
, więc domyślnienull
.Tablice w Javie rozpoczynają indeksowanie od 0. W naszym przykładzie odnosisz się o jeden do elementu, który jest poza tablicą.
Prawdopodobnie powinno to być coś w rodzaju freq [Global.iParameter [2] -1] = false;
Musiałbyś przejść przez tablicę, aby zainicjować ją całą, ta linia inicjalizuje tylko ostatni element.
Właściwie jestem prawie pewien, że wartość false jest domyślna dla wartości logicznych w Javie, więc może nie być konieczna inicjalizacja.
Z poważaniem
źródło
Boolean
, nieboolean
, więc domyślnienull
.Zostaną zainicjalizowane
false
domyślnie. W Javie tablice tworzone są na stercie i każdemu elementowi tablicy przypisywana jest domyślna wartość zależna od jego typu. Dlaboolean
typu danych wartością domyślną jestfalse
.źródło
Boolean
, nieboolean
, więc domyślnienull
.public static Boolean freq [] = new Boolean [Global.iParameter [2]];
Global.iParameter [2]:
Powinna mieć wartość stałą
źródło