Perbedaan antara set dan daftar

Perbedaan antara set dan daftar

Perbedaan antara daftar array dan daftar tertaut

Sebelum kita masuk ke perbedaan yang sebenarnya, mari kita tahu apa sebenarnya?

Apa itu satu set?

Kami telah menemukan konsep set dalam matematika dan set di sini lebih atau kurang berarti sama. Ya, ini adalah kumpulan elemen dan dalam kebanyakan kasus, kumpulan elemen serupa. Anda dapat mencoba menambahkan elemen -elemen ini ke satu set dan mencoba mencetak untuk memahami, bagaimana sebenarnya disimpan.

Masukan ke satu set: 20, 50, 10, 30.

Itu sebenarnya disimpan dalam satu set sebagai 10, 20, 30, 50.

Elemen diurutkan di sini dan disimpan bukan dalam urutan penyisipannya. Ini adalah salah satu fitur set yang selalu mengurutkan elemen sebelum disimpan dan tentu saja, ada pengecualian untuk itu dan salah satunya adalah LinkedHashset karena mempertahankan urutan penyisipan elemen.

Dalam istilah komputer, set tersebut mencakup beberapa properti tambahan seperti metode dan warisan. Metode sama seperti fungsi dan mereka melakukan tugas -tugas tertentu seperti menambahkan, menghapus atau mengulangi serangkaian elemen. Sebagian besar dari kita terkenal tentang istilah warisan dan artinya sama di sini. Ya, kami dapat mewarisi metode dari koleksinya, sehingga dapat digunakan dengan antarmuka yang ditetapkan. Sekali lagi kita berbicara tentang istilah baru saya.e. antarmuka yang ditetapkan, dan itu tidak lebih dari seluruh rangkaian elemen termasuk metode.

Bagaimana mengimplementasikannya?

Hanya untuk pemahaman yang lebih baik, kami telah mewakili satu set dengan sintaksnya. Dari sintaks di bawah ini, Anda dapat mengidentifikasi berbagai jenis set seperti hashset dan treeset.

Impor Java.util.*;

SetExample kelas publik

public static void main (string args [])

int count [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = hashset baru ();

mencoba

untuk (int i = 0; i < 5; i++)

mengatur.tambahkan (hitung [i]);

Sistem.keluar.println (set);

Treeeset sortedseteg = Treeset baru (set);

Sistem.keluar.println ("Di sini kita memiliki output yang diurutkan:");

Sistem.keluar.println (sortedseteg);

Sistem.keluar.println (“Lihat elemen pertama:“+ (integer) sortedset.Pertama());

Sistem.keluar.println (“Lihat elemen terakhir:“+ (integer) sortedset.terakhir());

Catch (Exception e)

Output dari kode di atas adalah sebagai berikut.

[25, 17, 76, 12, 88]
Di sini kami memiliki output yang diurutkan:
[12, 17, 25, 76, 88]
Lihatlah elemen pertama: 12
Lihatlah elemen terakhir: 88

Daftar apa itu?

Daftar memperluas koleksi yang mirip dengan cara set, tetapi mempertahankan urutan penyisipan. Anda mencoba menambahkan nama berikut ke daftar dan melihat bagaimana ditambahkan ke dalamnya.

Input ke daftar: John, Nancy, Mary, Alice.

Bagaimana itu disimpan dalam daftar: John, Nancy, Mary, Alice.

Perhatikan saja urutan di mana mereka dimasukkan.  Anda dapat mengidentifikasi bahwa 'John' menjadi elemen pertama dalam input serta output dan diikuti oleh urutan yang sama di mana nama dimasukkan. Kita bahkan dapat mempertimbangkan ini salah satu sifat utama daftar.

Bagaimana mengimplementasikannya?

Mari kita lihat beberapa metode daftar seperti ArrayList dan LinkedList di sintaks di bawah ini.

Impor Java.util.*;
Koleksi Kelas Publik Contoh

public static void main (string [] args)

Daftar A1 = ArrayList baru ();
A1.tambahkan ("John");
A1.tambahkan ("nancy");
A1.tambahkan ("Mary");
A1.tambahkan ("Alice");
Sistem.keluar.println ("ArrayList Elements Are");
Sistem.keluar.cetak (“\ t” + a1);

Daftar l1 = new LinkedList ();
L1.tambahkan ("Silvia");
L1.tambahkan ("Arjun");
L1.tambahkan ("Deepika");
L1.tambahkan ("Susan");
Sistem.keluar.println ();
Sistem.keluar.println ("Elemen LinkedList Are");
Sistem.keluar.cetak (“\ t” + l1);

Output dari sintaks di atas adalah sebagai berikut.

Elemen ArrayList ADALAH

[John, Nancy, Mary, Alice]

Elemen LinkedList

[Silvia, Arjun, Deepika, Susan]

Sangat jelas dari kode di atas bahwa baik arraylist dan linkedlist mempertahankan pesanan penyisipan.

Bagaimana mereka berbeda?

  • Metode dan Deskripsi:

Set dan daftar memiliki metode sendiri dan mari kita lihat beberapa dari mereka di sini.

S.TIDAK Set - Metode Daftar - Metode
1. menambahkan() - Itu untuk menambahkan objek ke koleksi. void add (indeks int, objek obj) - Itu menambahkan objek 'obj' pada 'indeks' yang ditentukan dari daftar pemohon dan memastikan bahwa tidak ada elemen yang ditimpa dengan menggeser elemen sebelumnya.
2. jernih() - Itu untuk menghapus objek dari koleksi. Boolean Addall (INT Index, Collection C) - Ini menambahkan seluruh koleksi 'C' ke daftar pemohon dan di 'indeks' yang ditentukan. Itu juga memastikan bahwa tidak ada elemen yang ditimpa. Kami juga dapat memeriksa kebenaran operasinya dengan memeriksa nilai pengembalian. Itu mengembalikan 'benar' jika perubahan berhasil sebaliknya, ia mengembalikan nilai 'false'.
3. mengandung() - Itu untuk memeriksa apakah set berisi objek tertentu di dalamnya. Itu mengembalikan nilai 'benar' jika objek hadir di set. Objek get (indeks int) - Itu mengembalikan elemen atau objek pada 'indeks' yang ditentukan.
4. kosong() - Itu untuk menentukan apakah koleksi membantu karena tidak ada elemen di dalamnya. Itu mengembalikan nilai 'benar' jika tidak ada elemen. int lastIndexof (objek obj) - Ini bekerja mirip dengan kebalikan dari Indeks() metode. Ini mengembalikan kejadian terakhir dari objek yang ditentukan 'obj' dan nilai '1' dikembalikan jika tidak ada objek tersebut dalam daftar. Oleh karena itu, itu juga dapat digunakan sebagai mengandung() Metode antarmuka yang ditetapkan.
6. menghapus() - Itu untuk menghapus elemen dari koleksi dengan menentukannya sebagai parameter ke metode. ListIterator ListIterator () - Itu mengembalikan iterator ke indeks awal daftar.
7. ukuran() - Itu untuk menghitung jumlah objek atau elemen yang dimiliki koleksi. ListIterator ListIterator (Indeks int) - Ini membantu dalam iterasi melalui daftar pemohon yang dimulai dari 'indeks' yang ditentukan.
8. - Objek hapus (indeks int) - Itu menghapus objek pada 'indeks' yang ditentukan dan mengembalikan elemen yang dihapus sebagai hasilnya. Itu juga mengurangi indeks daftar yang dihasilkan untuk mencerminkan penghapusan.
9. - Set objek (indeks int, objek obj) - Ini untuk menetapkan objek 'obj' ke daftar pemohon pada 'indeks' yang ditentukan.
10. - Daftar sublist (int start, int end) - Ini untuk memasukkan objek dari indeks 'start' ke indeks 'akhir' dalam daftar yang telah memohon metode tersebut.
  • Pemeliharaan Pesanan Penyisipan:

Set tidak pernah mempertahankan urutan elemen di mana mereka dimasukkan ke dalamnya sedangkan daftar memang mempertahankannya. Ada pengecualian untuk aturan ini untuk LinkedHashset karena mempertahankan urutan penyisipan tetapi set lainnya seperti hashset dan treeset mengurutkan elemen sebelum menyimpannya. Hal yang sama dijelaskan dengan contoh di bawah ini.

Mengatur Input: Cat, Doll, Apple.

Disimpan sebagai: apel, kucing, boneka.

Daftar input: kucing, boneka, apel.

Disimpan sebagai: kucing, boneka, apel.

  • Kehadiran duplikat:

Satu set tidak pernah memungkinkan duplikat sedangkan daftar memungkinkannya. Jika nilai duplikat harus ditambahkan ke daftar maka itu akan ditimpa. Lihatlah sampel untuk set dan daftar duplikat.

Setel input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 50.

Daftar Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 20, 50.

  • Nilai NULL:

Suatu set hanya dapat memiliki satu nilai nol sedangkan daftar dapat memiliki lebih dari satu nilai nol dan tidak terbatas pada angka apa pun.

Setel input: null, null, man, dog, plane.

Disimpan sebagai: nol, anjing, teman, pesawat.

Daftar input: null, null, man, dog, plane.

Disimpan sebagai: null, null, man, dog, plane.

  • Penggunaan Iterator & Listiterator:

Metode Iterator bekerja dengan baik dengan set dan daftar sedangkan Metode ListIterator hanya berfungsi dengan daftar. ListIterator dapat digunakan untuk melintasi ke depan serta ke belakang melalui daftar.

  • Kehadiran Kelas Legacy:

Set tidak memiliki kelas warisan sedangkan antarmuka daftar memiliki warisan yang disebut sebagai 'vektor'.  Vektor menggunakan antarmuka daftar dan karenanya mempertahankan urutan penyisipan. Karena upaya sinkronisasi, kinerja vektor sebagai tambahan, penghapusan & pembaruan sedikit lebih lambat.

  • Implementasi:

Beberapa implementasi yang ditetapkan adalah hashset, linkedhashset, dan treeset. Beberapa implementasi daftar termasuk ArrayList dan LinkedList.

Kapan Menggunakan Set & Daftar?

Penggunaan Set dan Daftar murni tergantung pada persyaratan pemeliharaan pesanan penyisipan. Seperti yang telah kami pelajari bahwa satu set tidak pernah mempertahankan urutan penyisipan, itu dapat digunakan ketika urutannya kurang penting. Dengan cara yang sama, gunakan daftar saat Anda perlu mempertahankan urutan penyisipan juga.

Perbedaan dalam bentuk tabel:

S.TIDAK Perbedaan Mengatur Daftar
1. Pesanan penyisipan Itu mempertahankan pesanan penyisipan. Yang pertama dimasukkan tetap di tempat pertama dan sebagainya terlepas dari nilainya. Itu tidak pernah mempertahankan pesanan penyisipan.
2. Metode Ini menggunakan metode seperti add (), clear (), contains (), isEmpty (), Remove () dan size (). Ini menggunakan metode seperti add (), addall (), get (), lastIndexof (), listIterator () dengan atau tanpa parameter, lepas (), set (), dan sublist ().
3. Duplikat Itu tidak pernah memungkinkan duplikat dan dalam hal penampilan seperti itu, nilainya ditimpa. Ini memungkinkan duplikat.
4. Nilai nol Itu hanya dapat memiliki satu nilai nol secara maksimal. Itu dapat memiliki sejumlah nilai nol.
5. Penggunaan iterator () & listiterator () Hanya menggunakan metode iterator (). Menggunakan iterator () serta listiterator ().
6. Kehadiran Kelas Legacy Tidak ada kelas warisan. Itu memiliki kelas warisan yang disebut sebagai vektor.
7. Implementasi Beberapa implementasi antarmuka yang ditetapkan adalah hashset, linkedhashset dan set pohon. Beberapa implementasi antarmuka daftar adalah LinkedList dan ArrayList.

Harapan, kami telah memasukkan setiap perbedaan yang mungkin antara set dan daftar. Jika Anda merasa bahwa kami telah melewatkan sesuatu, beri tahu kami.