Di C/C++
kami memiliki memset()
fungsi yang dapat memenuhi keinginan saya tetapi Java
bagaimana saya dapat menginisialisasi semua elemen ke nilai tertentu? Setiap kali kita menulis int[] array=new int[10];
, ini hanya menginisialisasi larik berukuran 10 yang memiliki semua elemen sama dengan nol. Saya hanya ingin mengubah integer inisialisasi ini untuk salah satu array saya. yaitu saya ingin menginisialisasi array yang memiliki semua elemen sama dengan -1
. Jika tidak, saya harus meletakkan for
loop setelah inisialisasi, yang berkisar dari indeks 0
ke indeks size-1
dan di dalam loop itu, saya menetapkan elemen ke -1
. Di bawah ini adalah kode untuk lebih memahami-
int[] array = new int[10];
for (int i = 0; i < size; i++) {
array[i] = -1;
}
Apakah saya akan benar? Apakah ada cara lain untuk hal yang sama?
Arrays.fill()
. Itu melakukan hal yang sama.public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
memset
juga dapat digunakan, dan sebenarnya sangat berguna, dalam array integer ketika Anda perlu mengisi0
atau-1
, misalnya dalam masalah DP.Ada juga
sumber
Juga dimungkinkan dengan aliran Java 8:
Mungkin, bukan cara paling efisien untuk melakukan pekerjaan itu.
sumber
Stream.generate(() -> new Whatever("Hello World", 42)).limit(count).toArray();
), jadi lebih fleksibel daripada Arrays.fill (). Tidak yakin dengan efisiensinya, seperti yang Anda katakan.Anda bisa melakukan ini jika singkat:
int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
tetapi itu menjadi buruk bagi lebih dari beberapa.
Lebih mudah menjadi
for
loop:Sunting: Saya juga menyukai
Arrays.fill()
opsi yang disebutkan orang lain.sumber
java.util.Arrays.fill ()
sumber
Sudahkah Anda mencoba fungsi Arrays.fill ?
sumber
Anda bisa menggunakan
Arrays.fill(array, -1)
.sumber
Ternyata Anda dapat menggunakan Arrays.fill (), cara Anda melakukannya juga berfungsi.
sumber
Arrays.fill()
menggunakanfor
loop dengan indeks0
kesize-1
. Dengan cara yang sama, apa yang saya lakukan. Terima kasih atas jawaban Anda.Menggunakan Java 8, Anda hanya dapat menggunakan
ncopies
dariCollections
kelas:Dalam kasus Anda, ini akan menjadi:
Berikut adalah jawaban rinci dari kasus serupa milik Anda.
sumber
Untuk Daftar, Anda dapat menggunakan
Collections.fill(arrayList, "-")
sumber