Wiem, jak to zrobić normalnie, ale mógłbym przysiąc, że możesz wypełnić jak [0] = {0,0,0,0}; Jak to robisz w ten sposób? Próbowałem Google, ale nie dostałem nic pomocnego.
Prawdziwe pytanie, które powinieneś zadać, brzmi: jak sprawić, by to zadziałało: a [0] = someFunction (4, 0) ;. Z tego powodu wybrana „poprawna” odpowiedź nie jest przydatna.
int [] a = new int [4] spowodowałoby to samo, ponieważ 0 jest wartością domyślną.
Zach Scrivena
5
Lub int [] a = {0, 0, 0, 0}; . Nowy int [] potrzebujesz tylko wtedy, gdy stała nie jest natychmiast używana w deklaracji.
starblue
4
nie jest to przydatne, gdy masz dużą tablicę. Odpowiedź @ cdmckay jest lepsza.
Felipe Leão
Nie zapomnij o odwiecznej zasadzie programowania: „Jeśli zauważysz, że kopiujesz / wklejasz kod, robisz coś nie tak”. Liczba zer lub dowolna wartość domyślna jest właśnie tutaj kopiowana i wklejana.
+1, ponieważ nie wiedziałem o metodzie Arrays.fill (). Zawsze robiłem to z pętlą for. : D
Spoike
8
@GrantGalitz Nie jestem co do tego przekonany, czy masz link do artykułu lub smt? Ponieważ w przeciwieństwie do Systemklas, java.util.Arraysjest to klasa zaimplementowana przez Javę, a przeglądanie kodu źródłowego pokazuje, że nie różni się od zwykłej pętli.
Pacerier
7
Tablice int są inicjalizowane wartością 0, więc w powyższym przykładzie druga linia nie jest konieczna.
Patrick Brinich-Langlois,
6
@ PatrickBrinich-Langlois: Nadal warto byłoby wskazać swój zamiar wyzerowania.
cdmckay
16
Arrays.fill(). Metoda jest przeciążona dla różnych typów danych, a nawet istnieje odmiana, która wypełnia tylko określony zakres indeksów.
W Javie-8 możesz IntStreamutworzyć strumień liczb, który chcesz powtórzyć, a następnie przekonwertować go na tablicę. To podejście tworzy wyrażenie odpowiednie do użycia w inicjatorze:
int[] data = IntStream.generate(() -> value).limit(size).toArray();
Powyżej sizei valuesą wyrażeniami, które generują liczbę elementów, które chcesz powtórzyć, i powtarzaną wartość.
Podczas tworzenia elementy tablicy w języku Java są inicjowane do wartości domyślnych. W przypadku liczb oznacza to, że są inicjalizowane na 0, w przypadku odniesień są one zerowe, a dla wartości logicznych mają wartość fałsz.
Aby wypełnić tablicę czymś innym, możesz użyć Arrays.fill () lub jako część deklaracji
int[] a = newint[] {0, 0, 0, 0};
W Javie nie ma skrótów do wypełniania tablic seriami arytmetycznymi, jak w niektórych językach skryptowych.
Witamy na stronie! Ta odpowiedź byłaby lepsza, gdybyś mógł dodać jakieś wyjaśnienie, zamiast po prostu wstawiać jakiś kod. Dlaczego miałoby to być lepsze od innych odpowiedzi już udzielonych na to 7-letnie pytanie?
Odpowiedzi:
Możesz to również zrobić w ramach deklaracji:
int[] a = new int[] {0, 0, 0, 0};
źródło
Sprawdź metody Arrays.fill .
int[] array = new int[4]; Arrays.fill(array, 0);
źródło
System
klas,java.util.Arrays
jest to klasa zaimplementowana przez Javę, a przeglądanie kodu źródłowego pokazuje, że nie różni się od zwykłej pętli.Arrays.fill()
. Metoda jest przeciążona dla różnych typów danych, a nawet istnieje odmiana, która wypełnia tylko określony zakres indeksów.źródło
W Javie-8 możesz
IntStream
utworzyć strumień liczb, który chcesz powtórzyć, a następnie przekonwertować go na tablicę. To podejście tworzy wyrażenie odpowiednie do użycia w inicjatorze:int[] data = IntStream.generate(() -> value).limit(size).toArray();
Powyżej
size
ivalue
są wyrażeniami, które generują liczbę elementów, które chcesz powtórzyć, i powtarzaną wartość.Próbny.
źródło
w java
int arrnum[] ={5,6,9,2,10}; for(int i=0;i<arrnum.length;i++){ System.out.println(arrnum[i]+" "); } Arrays.fill(arrnum,0); for(int i=0;i<arrnum.length;i++){ System.out.println(arrnum[i]+" "); }
Wynik
5 6 9 2 10 0 0 0 0 0
źródło
Tablicę można zainicjować przy użyciu
new Object {}
składni.Na przykład tablicę
String
można zadeklarować przez:String[] s = new String[] {"One", "Two", "Three"}; String[] s2 = {"One", "Two", "Three"};
Prymitywy można również zainicjować w podobny sposób:
int[] i = new int[] {1, 2, 3}; int[] i2 = {1, 2, 3};
Lub tablica niektórych
Object
:Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};
Wszystkie szczegóły dotyczące tablic w Javie zostały opisane w rozdziale 10: Tablice w specyfikacji języka Java, wydanie trzecie .
źródło
Podczas tworzenia elementy tablicy w języku Java są inicjowane do wartości domyślnych. W przypadku liczb oznacza to, że są inicjalizowane na 0, w przypadku odniesień są one zerowe, a dla wartości logicznych mają wartość fałsz.
Aby wypełnić tablicę czymś innym, możesz użyć Arrays.fill () lub jako część deklaracji
int[] a = new int[] {0, 0, 0, 0};
W Javie nie ma skrótów do wypełniania tablic seriami arytmetycznymi, jak w niektórych językach skryptowych.
źródło
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
źródło