Pertanyaan & Jawaban Wawancara Java Collections [Untuk Freshers & Berpengalaman]

Diterbitkan: 2020-12-16

Jika Anda pernah berurusan dengan Java di gelar sarjana Anda atau bekerja dengan Java, Anda harus mengetahui kerangka kerja Java Collection. Bagi pemula yang baru saja memulai perjalanan Java mereka, kerangka Koleksi adalah arsitektur terpadu yang dirancang untuk menyimpan dan memanipulasi sekelompok (koleksi) objek.

Pada dasarnya, "koleksi" mewakili satu kelompok objek. Koleksi Java mencakup antarmuka, kelas (ArrayList, Vector, Stack, dan Hashtable, dll.), dan algoritme dengan arsitektur siap pakai untuk menyimpan dan menangani data.

Pada artikel ini, kita akan melihat pertanyaan wawancara Java Collections yang paling sering ditanyakan. Kami telah membuat daftar pertanyaan mendasar yang biasanya ditanyakan wawancara saat mewawancarai kandidat untuk profil Java. Ini akan membantu Anda memahami pertanyaan seperti apa yang diharapkan dalam wawancara Anda berikutnya.

Pertanyaan & Jawaban Wawancara Java Collections

1. Apa keuntungan menggunakan kerangka Koleksi?

Java Collections mencakup kelas Generics dan Concurrent collection untuk operasi thread-safe. Juga, ia dilengkapi dengan antarmuka pemblokiran bersama dengan implementasinya dalam paket Java bersamaan. Berikut adalah beberapa manfaat dari kerangka Java Collections:

Ini memfasilitasi penggunaan kembali kode dan interoperabilitas.

Penggunaan kelas koleksi inti secara substansial mengurangi upaya dan waktu pengembangan.

Kelas koleksi yang dikirimkan dengan JDK mengurangi upaya yang diperlukan untuk pemeliharaan kode.

2. Bedakan antara Array dan Koleksi.

Meskipun array dan koleksi digunakan untuk menyimpan objek dan memanipulasi data, mereka memiliki beberapa perbedaan bawaan:

  • Anda tidak dapat menambah atau mengurangi panjang array sesuai dengan persyaratan runtime Anda – ukuran array tetap. Namun, Anda dapat mengubah ukuran koleksi sesuai dengan kebutuhan penskalaan Anda.
  • Array hanya dapat menyimpan objek yang homogen (serupa atau sama), sedangkan koleksi dapat menyimpan sekelompok objek yang heterogen.
  • Sementara array tidak menawarkan metode siap pakai (pencarian, pengurutan, penyisipan, dll.) untuk kebutuhan pengguna, koleksi selalu menyertakan metode siap pakai.

3. Apa peran Generik dalam kerangka Koleksi?

Generik memungkinkan Anda menentukan atau menentukan jenis objek yang dapat disimpan oleh koleksi. Jika Anda mencoba menambahkan elemen dari jenis yang berbeda, Generics akan menampilkan kesalahan waktu kompilasi. Jadi, dengan menunjukkan kesalahan selama kompilasi, ini membantu mencegah ClassCastException saat runtime. Selain itu, karena Generics menghilangkan kebutuhan untuk menggunakan fungsi casting dan instanceof, itu membuat kode menjadi bersih dan tepat.

4. Beri nama antarmuka kerangka Koleksi.

Berikut adalah lima antarmuka inti dalam kerangka Koleksi:

Antarmuka koleksi – Ini adalah dasar dari hierarki Koleksi Java. Sebagian besar koleksi di Java diwarisi dari antarmuka Koleksi.

Daftar antarmuka – Ini adalah array yang diperluas yang berisi elemen yang dipesan, bersama dengan duplikatnya. Antarmuka ini mendukung pencarian berbasis indeks. Jadi, Anda dapat mengakses elemen apa pun dari index. Ini diimplementasikan dengan menggunakan kelas yang berbeda seperti ArrayList, LinkedList, dll.

Atur antarmuka – Ini adalah kelas koleksi yang tidak dapat berisi elemen duplikat. Tidak seperti Daftar, ini tidak mendukung pencarian berbasis indeks dan tidak menentukan urutan elemen apa pun. Atur model abstraksi himpunan matematika dan diimplementasikan oleh kelas-kelas seperti HashSet, TreeSet, LinkedHashSet, dll.

Antarmuka peta – Ini adalah struktur data dua dimensi yang menyimpan data dalam pasangan nilai kunci. Sementara kuncinya adalah kode hash unik, nilainya menunjukkan elemen. Peta tidak boleh memiliki kunci/elemen duplikat.

Antarmuka antrian – Antarmuka ini mengatur elemen dalam pendekatan First In First Out (FIFO). Dengan demikian, elemen dalam antarmuka antrian dihapus dari depan dan ditambahkan dari ujung belakang.

Baca Juga: Cara Membuat Kode, Kompilasi, dan Menjalankan Proyek Java

5. Kapan Anda harus mengganti metode equals() di Java?

Sementara implementasi awal metode equals() memeriksa apakah dua objek serupa, metode equals() perlu diganti jika Anda ingin membandingkan objek berdasarkan propertinya.

6. Apakah bermanfaat menggunakan file Properties?

Ya, menggunakan file Properties di Java memberikan keuntungan besar – jika Anda mengubah nilai dalam file ini, itu akan direfleksikan secara otomatis, tanpa perlu mengkompilasi ulang kelas Java. Akibatnya, file Properties terutama digunakan untuk menyimpan informasi yang dapat diubah (misalnya, nama pengguna dan kata sandi. Hal ini memungkinkan pengelolaan aplikasi Java dengan mudah.

7. Apa fungsi Iterator pada framework Collection?

Iterator adalah antarmuka yang disertakan dalam paket java.util. Juga dikenal sebagai Universal Java Cursor, Iterator membantu mengulangi kumpulan objek. Iterator memungkinkan Anda melewatkan kumpulan objek satu per satu dan mendukung operasi READ dan REMOVE. Ini banyak digunakan karena nama metode Iterator dapat dengan mudah diimplementasikan.

8. Bagaimana cara mengurutkan objek Collection?

Dalam kerangka Koleksi, penyortiran biasanya diimplementasikan dengan menggunakan antarmuka Sebanding dan Pembanding . Jika Anda menggunakan metode Collections.sort() , itu akan mengurutkan elemen berdasarkan urutan alami yang ditentukan dalam metode compareTo() . Namun, saat Anda menggunakan metode Collections.sort(Comparator), itu akan mengurutkan elemen menurut metode compare() dari antarmuka Comparator.

Baca: Proyek Java Swing

9. Apakah mungkin untuk mengonversi ArrayList ke Array dan Array ke ArrayList?

Ya, adalah mungkin untuk melakukannya. Anda dapat mengonversi Array menjadi ArrayList dengan menggunakan fungsi asList() kelas Array. Sintaks untuk ini adalah sebagai berikut:

Array.asList(item)

Anda dapat mengonversi ArrayList menjadi Array menggunakan fungsi toArray() dari kelas ArrayList, seperti:

List_object.toArray(String baru[List_object.size()])

10. Bagaimana cara membalikkan Daftar?

Bagaimana Anda akan membalikkan ArrayList?

Anda dapat membalikkan ArrayList menggunakan fungsi reverse() dari kelas Collections. Sintaks untuk ini adalah sebagai berikut:

public static void reverse (Koleksi c)

11. Apa itu “BlockingQueue?”

Antarmuka BlockingQueue hadir dalam paket java.util.concurrent . Tujuan utamanya adalah untuk meningkatkan kontrol aliran dengan mengaktifkan pemblokiran setiap kali utas mencoba menghapus antrian kosong atau mengantrekan antrian penuh yang ada. Antarmuka BlockingQueue tidak menerima nilai nol, dan jika Anda mencoba memasukkan nilai nol, itu akan menampilkan NullPointerException.

12. Jelaskan “Antrian Prioritas.”

Antrian Prioritas adalah tipe data abstrak seperti antrian standar atau struktur data tumpukan. Namun, dalam antrian ini, setiap elemen memiliki fitur unik yang disebut "prioritas". Karena didasarkan pada tumpukan prioritas, Antrian Prioritas melayani elemen prioritas tinggi sebelum elemen prioritas rendah, terlepas dari urutan penyisipannya. Dalam Antrian Prioritas, elemen diurutkan menurut urutan alami atau oleh Pembanding yang digunakan pada waktu konstruksi antrian (tergantung pada konstruktor yang Anda gunakan).

13. Bagaimana elemen penyimpanan kelas HashSet?

Kelas HashSet adalah anggota kerangka Java Collections yang mewarisi kelas AbstractSet dan mengimplementasikan antarmuka Set.

HashSet mengimplementasikan Hashtable baik untuk membuat dan menyimpan kumpulan elemen. Hashtable adalah turunan dari kelas HashMap yang menggunakan mekanisme hashing untuk menyimpan data dalam HashSet. Hashing mengacu pada teknik mengubah informasi menjadi nilai unik yang dikenal sebagai Kode Hash. Kode Hash mengindeks data yang terkait dengan kunci unik.

14. Apakah mungkin untuk menambahkan elemen null ke dalam TreeSet atau HashSet?

Meskipun Anda hanya dapat menambahkan satu elemen null dalam HashSet, Anda tidak dapat melakukannya di TreeSet karena menggunakan NavigableMap untuk menyimpan elemen. NavigableMap adalah subtipe dari SortedMap yang tidak menerima/mendukung nilai nol. Jika Anda memasukkan elemen null ke TreeSet, itu akan memicu NullPointerException.

15. Apa yang dilakukan fungsi emptySet()?

Di Java, Collections.emptySet() digunakan untuk mengembalikan set kosong yang tidak dapat diubah dengan menghilangkan semua elemen null. Berikut sintaks untuk mendeklarasikan emptySet():

final statis publik <T> Set<T> emptySet()

16. Mengapa antarmuka Peta tidak memperluas Antarmuka Koleksi?

Sementara antarmuka Peta mengikuti struktur pasangan nilai kunci, antarmuka Koleksi menyimpan kumpulan objek secara terstruktur dengan mekanisme akses yang ditentukan. Peta tidak memperluas antarmuka Koleksi karena fungsi tambah(E e) dari antarmuka Koleksi tidak mendukung model pasangan nilai kunci dari fungsi put (kunci K, nilai V) Peta.

17. Beri nama tampilan Koleksi yang berbeda yang diperluas oleh antarmuka Peta.

Antarmuka Peta menawarkan tiga tampilan pasangan nilai kunci, yaitu:

  • Tampilan kumpulan kunci
  • Tampilan kumpulan nilai
  • Tampilan set entri

18. Buat daftar fitur inti Java Hashmap.

Fitur dasar Hashmap adalah:

  • Anda dapat menyimpan elemen dengan membentuk pasangan nilai kunci dan mengambil nilainya dengan meneruskan kunci ke metode yang benar.
  • Ini menampilkan NoSuchElementException jika tidak ada elemen di Peta.
  • Ini hanya menyimpan referensi objek, sehingga tidak mungkin untuk menggunakan tipe data primitif seperti double atau int. Sebagai gantinya, Anda dapat menggunakan kelas pembungkus seperti Integer atau Double.

Wajib Dibaca: Pertanyaan & Jawaban Wawancara Java

19. Tentukan "Stack."

Di Java, Stack menunjukkan area yang ditentukan dari memori komputer yang menyimpan variabel sementara yang dibuat oleh suatu fungsi. Variabel dideklarasikan, disimpan, dan diinisialisasi selama runtime di Stack.

20. Tentukan “notasi Big-O.”

Notasi Big-O mendefinisikan kinerja algoritma dalam kaitannya dengan jumlah elemen dalam struktur data. Kelas koleksi adalah struktur data, dan karenanya, Anda perlu menggunakan notasi Big-O untuk memutuskan implementasi koleksi mana yang akan digunakan berdasarkan memori, waktu, dan kinerja.

Mendaftar di Kursus Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kesimpulan

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Dapatkan Pekerjaan Impian Anda

Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak