1. Wadah dan koleksi
Wadah atau koleksi adalah kelas yang memungkinkan Anda menyimpan dan memproses beberapa objek sekaligus. Anda sudah mengetahui dua jenis wadah: array dan daftar.
Java memiliki beberapa lusin koleksi, yang masing-masing menyimpan elemen dengan caranya sendiri-sendiri. Berikut ini beberapa di antaranya:
Koleksi | Kelas | Keterangan |
---|---|---|
|
|
Daftar |
|
Daftar tertaut | |
|
Vektor | |
|
Tumpukan | |
|
|
Mengatur |
|
||
|
||
|
|
Antre |
|
||
|
|
Peta/Kamus |
|
||
|
Nama-nama agak ambigu di sini. Di sebagian besar bahasa pemrograman, semua struktur data ini disebut koleksi, tetapi tidak di Java. Di Java, beberapa kelas ini mengimplementasikan antarmuka Collection
, sementara yang lain tidak.
Dengan demikian, koleksi dibagi menjadi koleksi dalam arti luas dan koleksi dalam arti sempit (hanya yang mengimplementasikan Collection
antarmuka).
Jadi untuk menghindari kebingungan, ketika kita berbicara tentang koleksi yang kita maksudkan dalam arti kata yang sempit, yaitu kelas yang mengimplementasikan Collection
antarmuka. , List
dan Set
type Queue
adalah semua koleksi. Koleksi dalam arti luas umumnya disebut container . Ini termasuk tipe like Map
dan array.
2. HashSet
koleksi
Kelas HashSet
adalah koleksi set yang khas. Dalam banyak hal, ini mirip dengan ArrayList
kelas. Dalam beberapa hal, ini adalah versi yang lebih primitif.
Anda dapat membuat HashSet
objek menggunakan pernyataan seperti:
HashSet<Type> name = new HashSet<Type>();
Dimana Type
jenis elemen yang akan kita simpan di HashSet
collection.
Kelas HashSet
memiliki metode seperti ini:
metode | Keterangan |
---|---|
|
Menambahkan value elemen ke koleksi |
|
Menghapus value elemen dari koleksi. Mengembalikan true jika ada elemen seperti itu |
|
Memeriksa apakah koleksi memiliki value elemen |
|
Membersihkan koleksi, menghapus semua elemen |
|
Mengembalikan jumlah elemen dalam koleksi |
Berikut adalah contoh penggunaan himpunan.
Mari kita menulis sebuah program yang mengucapkan selamat tinggal kepada pengguna jika dia menyapa. Agar lebih menarik, kami akan memberikan program kami kemampuan untuk memahami "halo" dalam beberapa bahasa.
Kode | Catatan |
---|---|
|
Buat HashSet objek yang menyimpan String elemen. Kami menambahkan salam dalam berbagai bahasa ke set variabel. Baca baris dari konsol. Jika utasnya ada di rangkaian salam kami, maka kami mengucapkan selamat tinggal. |
3. Tetapkan
Koleksi ini Set
dirancang untuk menampung sekumpulan elemen. Itu sebabnya disebut Set
(set). Koleksi ini memiliki tiga fitur.
Operasi pada himpunan
Hanya ada tiga hal yang dapat Anda lakukan dengan set: menambahkan elemen ke set, menghapus elemen dari set, dan memeriksa apakah set berisi elemen tertentu. Itu dia.
Tidak ada pesanan
Elemen dalam koleksi ini tidak memiliki indeks. Anda tidak bisa mendapatkan elemen dengan indeks, atau menulis nilai ke koleksi pada indeks tertentu. Satu set tidak memiliki get()
dan set()
metode.
Elemen unik
Semua elemen dalam satu set adalah unik. Tidak seperti daftar, satu set hanya dapat berisi satu contoh elemen. Objek ada di set atau tidak — tidak ada opsi ketiga. Anda tidak dapat menambahkan hitam tiga kali ke satu set warna. Itu ada atau tidak.
Menemukan elemen
Saat Anda menambahkan elemen baru, menghapus elemen, atau memeriksa apakah ada elemen dalam kumpulan, pencarian elemen dilakukan dalam metode. Elemen yang diteruskan dibandingkan dengan elemen koleksi terlebih dahulu dengan hashCode()
, lalu jika nilainya dikembalikan dengan hashCode()
cocok, dengan equals()
.
4. Membandingkan koleksi: List
vsSet
Mari kita bandingkan dua jenis koleksi: List
dan Set
Kami akan melihat perbedaan utama ketika yang satu lebih menguntungkan daripada yang lain, dan sebaliknya.
Mari kita coba bandingkan List dan Set menggunakan mainan sebagai contoh.
List
Koleksi (daftar) itu seperti seperangkat mainan yang disusun di sepanjang dinding di ruang bermain. Anda dapat menambahkan mainan ke akhir daftar. Jika memang perlu, Anda juga bisa memasukkannya di tengah (tetapi beberapa mainan yang ada harus dipindahkan).
Setiap mainan memiliki indeks. Anda dapat merujuk mainan berdasarkan indeksnya dan juga mengganti mainan nomor 7 dengan mainan nomor 13. Anda dapat menghapus mainan nomor 4 dari daftar. Terakhir, Anda dapat mempelajari indeks setiap mainan dalam daftar.
Koleksi Set
(set) lebih seperti tumpukan mainan di tengah lantai. Anda dapat menambahkan mainan ke dalam tumpukan, dan Anda dapat mengeluarkan mainan dari tumpukan tersebut. Tapi mainan ini tidak memiliki indeks tetap yang terkait dengannya.
Atau misalkan Anda sedang memilih mainan untuk ulang tahun anak Anda. Pertama, Anda memikirkan apakah dia sudah memiliki mainan itu. Semua mainan yang sudah dia miliki membentuk satu set mainan yang tidak akan Anda pilih untuk dibeli.
Dari sudut pandang ini, Anda dapat melihat bahwa urutan mainan dalam satu set "mainan yang sudah ada" tidak masalah, juga tidak masalah jika anak laki-laki yang berulang tahun memiliki dua contoh mainan tertentu. Anda tidak tertarik dengan urutan atau nomor setiap mainan. Yang Anda pedulikan adalah mengetahui setiap mainan unik yang ada di set.
Untuk kasus seperti ini, Anda membutuhkan koleksinya Set
. Implementasinya yang paling populer adalah HashSet
kelas.
GO TO FULL VERSION