Perbezaan Utama – Senarai lwn Set
Kebanyakan bahasa pengaturcaraan menggunakan tatasusunan untuk menyimpan set data daripada jenis yang sama. Satu kelemahan utama tatasusunan ialah, setelah saiz tatasusunan diisytiharkan, ia tidak boleh diubah suai. Jika pengaturcara ingin menyimpan nilai yang melebihi saiz tatasusunan, maka dia harus mencipta tatasusunan baharu dan menyalin elemen sedia ada ke tatasusunan baharu. Dalam situasi ini, koleksi boleh digunakan. Ia adalah mungkin untuk menambah elemen, memadam elemen dan banyak operasi lain dengan sokongan koleksi. Terdapat pelbagai jenis koleksi yang tersedia dalam bahasa pengaturcaraan seperti Java. Senarai dan Set ialah antara muka hierarki koleksi. Antara muka asas untuk antara muka lain ialah Koleksi. Perbezaan utama antara Senarai dan Set ialah Senarai menyokong penyimpanan elemen yang sama beberapa kali manakala Set tidak menyokong penyimpanan elemen yang sama beberapa kali. Oleh itu, Set tidak membenarkan penduaan.
Apakah itu Senarai?
Senarai ialah antara muka yang memanjangkan antara muka Koleksi. Terdapat beberapa kaedah dalam antara muka Koleksi. Kaedah tambah membantu menambah elemen. 'Kaedah keluarkan' adalah untuk mengalih keluar elemen. Terdapat 'addAll method' untuk menambah berbilang elemen manakala 'removeAll method' untuk mengalih keluar elemen daripada koleksi. Kaedah mengandungi membantu untuk mencari sama ada objek tertentu terdapat dalam Senarai atau tidak. 'mengandungiSemua' adalah untuk mencari sama ada set objek terdapat dalam koleksi. Kaedah iterator digunakan untuk mengulangi item dalam senarai. Apabila Senarai memanjangkan Koleksi, semua kaedah Koleksi adalah milik Senarai. Selain daripada kaedah tersebut, Senarai mempunyai kaedah seperti dapatkan dan tetapkan. Pengaturcara boleh mendapatkan nilai pada indeks tertentu menggunakan kaedah get. Pengaturcara boleh menetapkan nilai pada indeks tertentu menggunakan kaedah yang ditetapkan. 'indexOf' digunakan untuk mencari indeks sesuatu elemen.
Dalam Senarai, operasi boleh dilakukan mengikut kedudukan. Pengaturcara boleh menyediakan elemen data yang akan ditambah pada indeks. Jadi ia akan ditambah pada indeks tertentu. Jika pengaturcara tidak memberikan indeks, elemen itu akan ditambah pada penghujung Senarai. Ia juga mengekalkan susunan yang dimasukkan. Jika elemen 1 ditambah dan kemudian elemen2 ditambah, maka elemen1 akan berada sebelum elemen2.
Rajah 01: Senaraikan dan Tetapkan
ArrayList, LinkedList, Vector ialah beberapa kelas yang melaksanakan Senarai. Dalam ArrayList, mengakses elemen adalah pantas tetapi memasukkan dan memadam adalah lebih rendah. ArrayList tidak selamat untuk benang. Mengakses ArrayList yang sama daripada berbilang benang mungkin tidak memberikan hasil yang sama. Dalam LinkedList, elemen dipautkan ke belakang dan ke hadapan. Memasukkan dan memadamkan elemen menggunakan LinkedList adalah lebih pantas daripada ArrayList. LinkedList melaksanakan Senarai dan Baris Gilir Kedua-duanya. Vektor adalah serupa dengan ArrayList, tetapi ia selamat di tapak kerana semua kaedah disegerakkan.
Apakah yang Ditetapkan?
Set ialah antara muka yang memanjangkan antara muka Koleksi. Memandangkan antara muka Set memanjangkan Koleksi, semua kaedah Koleksi juga dimiliki oleh Set. Set tidak menyokong nilai pendua. Oleh itu, pengaturcara tidak boleh menyimpan elemen yang sama dua kali. Ia mengekalkan satu set elemen yang unik. Antara muka SortedSet memanjangkan antara muka Set. SortedSet mengekalkan elemen dalam susunan yang disusun. Antara muka NavigableSet memanjangkan SortedSet. NavigableSet menyediakan kaedah navigasi seperti bawah, lantai, siling dll.
HashSet, LinkedHashSet dan TreeSet ialah beberapa kelas yang melaksanakan antara muka Set. HashSet melaksanakan antara muka Set. Ia tidak mengekalkan susunan yang dimasukkan. Jika nilai dimasukkan sebagai a, x, b ia mungkin menyimpan sebagai, x, a, b. LinkedSet mengekalkan susunan yang dimasukkan. Jika unsur-unsur dimasukkan dalam susunan a, x, b, susunan penyimpanan akan menjadi a, x, b. TreeSet melaksanakan Set dan NavigableSet. Ia tidak mengekalkan susunan pemasukan tetapi menyimpan elemen dalam susunan yang diisih. Jika susunan yang dimasukkan ialah a, c, b, maka elemen akan disimpan sebagai a, b, c. Semua HashSet, LinkedHashSet dan TreeSet tidak akan mempunyai sebarang unsur pendua.
Apakah Persamaan Antara Senarai dan Set?
- Senarai dan Tetapkan antara muka memanjangkan antara muka Koleksi.
- Kedua-dua Senarai dan Tetapkan operasi sokongan seperti menambah, mengalih keluar elemen.
Apakah Perbezaan Antara Senarai dan Set?
Senarai lwn Set |
|
Antara Muka Senarai ialah sub antara muka Koleksi yang mengandungi kaedah untuk melaksanakan operasi seperti sisip, padam berdasarkan indeks. | Set Interface ialah sub antara muka Koleksi yang mengandungi kaedah untuk melaksanakan operasi seperti memasukkan, memadam elemen sambil mengekalkan elemen unik. |
Kelas | |
ArrayList, Vector dan LinkedList ialah kelas yang melaksanakan antara muka Senarai. | HashSet, LinkedHashSet dan TreeSet ialah kelas yang melaksanakan antara muka Set. |
Penduaan Elemen | |
Senarai menyokong pertindihan elemen. | Set tidak menyokong pertindihan elemen. Elemen adalah unik. |
Ringkasan – Senarai lwn Set
Koleksi digunakan untuk menyimpan elemen secara dinamik. Bahasa pengaturcaraan seperti Java menyediakan antara muka Koleksi. Senarai dan Set ialah dua antara muka yang tergolong dalam antara muka Koleksi. Kedua-dua antara muka memanjangkan Koleksi. Artikel ini membincangkan perbezaan antara Senarai dan Set. Perbezaan utama antara Senarai dan Set ialah Senarai menyokong menyimpan elemen yang sama beberapa kali manakala Set tidak menyokong menyimpan elemen yang sama berbilang masa. Set sentiasa mengekalkan elemen unik.