Java Collection.of
Pendahuluan
Sebelum Java 9, membuat koleksi kecil seperti List atau Set seringkali melibatkan konstruktor yang verbose atau bahkan berpotensi rawan error.
Atau bahkan melibatkan struktur data yang lain dan dikonversi ke struktur data list dulu.
Misalnya :
- pakai Array dulu , contoh : Arrays.asList()
- pakai Double brace initialization, artikel mengenai ini bisa dilihat di : Double Brace
Tidak ada cara yang mudah dalam membuat Collection yang sederhana seperti di bahasa pemrograman lain.
Java 9 memperkenalkan metode statis Collections.of yang mengubah cara kita membuat koleksi kecil menjadi lebih ringkas dan efisien.
Cara Menggunakan Collection.of:
Sintaks Collection.of sangat sederhana.
Kita cukup menuliskan tipe koleksi yang ingin dibuat diikuti oleh elemen-elemennya, dipisahkan dengan koma.
Contohnya :
// Membuat List
List<String> fruits = List.of("pisang", "mangga", "jambu");
// Membuat Set
Set<Integer> numbers = Set.of(1, 2, 3, 4);
// Membuat Map (hanya untuk Java 11 ke atas)
Map<String, Integer> ages = Map.of("Joni", 31, "Jeni", 27);
Catatan mengenai Collection.of:
Ada beberapa hal yang mesti kita perhatikan ketika menggunakan Collection.of ini :
- Koleksi yang dibuat dengan Collection.of bersifat immutable secara default. Jika kita ingin membuat koleksi yang bisa diubah, gunakan metode builder yang tersedia pada beberapa tipe koleksi.
- Elemen null tidak dapat ditambahkan ke List atau Set.
- Elemen duplikat tidak dapat ditambahkan ke Set.
- Perhatikan keterbatasan versi Java. Map.of baru tersedia di Java 11 ke atas.
- Kita dapat menggunakan Collection.of dalam chaining methods/fluent interface untuk membuat konstruksi kode yang lebih ringkas.
- Kita bisa memanfaatkan fitur immutable untuk meningkatkan keandalan dan keamanan program Anda.
Kegunaan Collection.of
Kita dapat menyimpulkan bahwa Collection.of mempunyai kegunaan sbb :
- Mengurangi boilerplate code: Collection.of menghilangkan kebutuhan untuk menulis kode berulang-ulang saat membuat koleksi kecil.
- Type-Safe: Collections.of secara otomatis inferensi tipe elemen yang ditambahkan, menghilangkan potensi kesalahan tipe data yang umum terjadi saat menggunakan konstruktor generik.
- Meningkatkan keterbacaan kode: Kode kita menjadi lebih jelas dan mudah dipahami, terutama saat membuat koleksi dengan elemen yang sedikit.
- Meningkatkan imutability (keadaan tidak bisa diubah): Koleksi yang dibuat dengan Collection.of bersifat immutable secara default, sehingga tidak dapat diubah setelah dibuat. Ini membantu keamanan dan keandalan program.