Menginisialisasi Array di Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat berbagai cara untuk menginisialisasi array dan perbedaan halus di antara keduanya.

2. Satu Elemen pada Suatu Waktu

Mari kita mulai dengan metode sederhana berbasis loop:

for (int i = 0; i < array.length; i++) { array[i] = i + 2; }

Dan mari kita lihat juga bagaimana kita dapat menginisialisasi array multi-dimensi satu elemen pada satu waktu:

for (int i = 0; i < 2; i++) { for (int j = 0; j < 5; j++) { array[i][j] = j + 1; } }

3. Pada Saat Deklarasi

Sekarang mari kita inisialisasi array pada saat deklarasi:

String array[] = new String[] { "Toyota", "Mercedes", "BMW", "Volkswagen", "Skoda" };

Saat membuat instance array, kita tidak perlu menentukan tipenya:

int array[] = { 1, 2, 3, 4, 5 };

Perhatikan bahwa tidak mungkin menginisialisasi larik setelah deklarasi menggunakan pendekatan ini. Upaya untuk melakukannya akan menghasilkan kesalahan kompilasi.

4. Menggunakan Arrays.fill ()

Kelas java.util.Arrays memiliki beberapa metode bernama fill () yang menerima berbagai jenis argumen dan mengisi seluruh array dengan nilai yang sama:

long array[] = new long[5]; Arrays.fill(array, 30);

Metode ini juga memiliki beberapa alternatif yang menetapkan rentang larik ke nilai tertentu:

int array[] = new int[5]; Arrays.fill(array, 0, 3, -50);

Perhatikan bahwa metode menerima larik, indeks elemen pertama, jumlah elemen, dan nilainya.

5. Menggunakan Arrays.copyOf ()

Metode Arrays.copyOf () membuat array baru dengan menyalin array lain. Metode ini memiliki banyak kelebihan yang menerima berbagai jenis argumen.

Mari kita lihat contoh singkatnya:

int array[] = { 1, 2, 3, 4, 5 }; int[] copy = Arrays.copyOf(array, 5);

Beberapa catatan di sini:

  • Metode ini menerima larik sumber dan panjang salinan yang akan dibuat
  • Jika panjangnya lebih besar dari panjang array yang akan disalin, maka elemen tambahan akan diinisialisasi menggunakan nilai defaultnya
  • Jika larik sumber belum diinisialisasi, NullPointerException akan dilempar
  • Jika panjang larik sumber negatif, NegativeArraySizeException akan muncul

6. Menggunakan Arrays.setAll ()

Metode Arrays.setAll () mengatur semua elemen array menggunakan fungsi generator:

int[] array = new int[20]; Arrays.setAll(array, p -> p > 9 ? 0 : p); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Jika fungsi generator bernilai null, NullPointerException akan muncul.

7. Menggunakan ArrayUtils.clone ()

Terakhir, mari gunakan ArrayUtils.clone () API dari Apache Commons Lang 3 - yang menginisialisasi array dengan membuat salinan langsung dari array lain:

char[] array = new char[] {'a', 'b', 'c'}; char[] copy = ArrayUtils.clone(array);

Perhatikan bahwa metode ini kelebihan beban untuk semua tipe primitif.

8. Kesimpulan

Dalam artikel ini, kami telah mempelajari berbagai cara untuk menginisialisasi array di Java.

Seperti biasa, versi lengkap kode tersedia di GitHub.