Perbedaan antara Set dan Daftar

Perbedaan antara Daftar Array dan Daftar Tertaut

Sebelum kita masuk ke perbedaan yang sebenarnya, mari kita ketahui apa itu sebenarnya?

Apa itu Set?

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

Input ke Set: 20, 50, 10, 30.

Ini sebenarnya disimpan dalam Set as 10, 20, 30, 50.

Elemen-elemen diurutkan di sini dan disimpan tidak dalam urutan penyisipannya. Ini adalah salah satu fitur dari Set yang selalu mengurutkan elemen sebelum menyimpan dan tentu saja, ada pengecualian untuk itu dan salah satunya adalah LinkedhashSet karena mempertahankan urutan penyisipan elemen.

Dalam istilah komputer, Perangkat mencakup beberapa properti tambahan seperti Metode dan Warisan. Metode seperti fungsi dan mereka melakukan tugas-tugas tertentu seperti menambah, menghapus, atau mengulangi set elemen. Sebagian besar dari kita terkenal dengan istilah Warisan dan artinya sama di sini. Ya, kami dapat mewarisi Metode dari Koleksi, sehingga dapat digunakan dengan Set Interface. Sekali lagi kita berbicara tentang istilah baru yaitu Set Interface, dan itu tidak lebih dari seluruh rangkaian elemen termasuk Metode.

Bagaimana cara mengimplementasikannya?

Hanya untuk pemahaman yang lebih baik, kami telah mewakili Set dengan Sintaksnya. Dari sintaksis di bawah ini, Anda dapat mengidentifikasi berbagai jenis Set seperti HashSet dan TreeSet.

import java.util. *;

Setexample kelas publik

public static static utama (String args [])

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

Set set = new HashSet ();

coba

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

set.add (hitung [i]);

System.out.println (set);

TreeSet diurutkanSeteg = TreeSet baru (set);

System.out.println ("Di sini kami memiliki output yang diurutkan:");

System.out.println (SortSeteg);

System.out.println ("Lihat elemen Pertama:" + (Integer) sortSet.first ());

System.out.println ("Lihat elemen terakhir:" + (Integer) sortSet.last ());

catch (Exception e)

Output dari kode di atas adalah sebagai berikut.

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

Apa itu Daftar?

Daftar memperluas Koleksi mirip dengan Set yang dilakukan, tetapi mempertahankan urutan penyisipan. Anda mencoba menambahkan nama-nama berikut ke daftar dan melihat bagaimana ditambahkan ke dalamnya.

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

Cara disimpan dalam Daftar: John, Nancy, Mary, Alice.

Perhatikan saja urutan penyisipannya. Anda dapat mengidentifikasi bahwa 'John' menjadi elemen pertama dalam input serta output dan diikuti oleh urutan yang sama di mana nama-nama dimasukkan. Kami bahkan dapat mempertimbangkan ini salah satu properti utama Daftar.

Bagaimana cara mengimplementasikannya?

Mari kita lihat beberapa metode Daftar seperti ArrayList dan LinkedList dalam sintaksis di bawah ini.

import java.util. *;
sampel kelas publik Collectionssample

public static public void (String [] args)

List a1 = new ArrayList ();
a1.add ("John");
a1.add ("Nancy");
a1.add ("Mary");
a1.add ("Alice");
System.out.println ("Elemen ArrayList adalah");
System.out.print ("\ t" + a1);

List l1 = new LinkedList ();
l1add ("Silvia");
l1.add ("Arjun");
l1add ("Deepika");
l1add ("Susan");
System.out.println ();
System.out.println ("Elemen LinkedList adalah");
System.out.print ("\ 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 ArrayList dan LinkedList mempertahankan urutan penyisipan.

Bagaimana Mereka Berbeda?

  • Metode dan Deskripsi:

Set dan Daftar memiliki metode sendiri dan mari kita lihat beberapa di sini.

S.Tidak Set - Metode Daftar - Metode
1. Menambahkan() - Ini untuk menambahkan objek ke koleksi. membatalkan add (int index, Object obj) - Ia menambahkan objek 'obj' pada 'indeks' yang ditentukan pada daftar pemohon dan memastikan bahwa tidak ada elemen yang ditimpa dengan menggeser elemen sebelumnya.
2. bersih() - Ini untuk menghapus objek dari koleksi. boolean addAll (int index, Collection c) - Ia menambahkan seluruh koleksi 'c' ke daftar yang memohon dan pada 'indeks' yang ditentukan. Ini juga memastikan bahwa tidak ada elemen yang ditimpa. Kami juga dapat memeriksa kebenaran operasinya dengan memeriksa nilai kembali. Ini mengembalikan 'benar' jika perubahan berhasil sebaliknya, mengembalikan nilai 'salah'.
3. mengandung() - Ini untuk memeriksa apakah Set berisi objek tertentu di dalamnya. Ini mengembalikan nilai 'true' jika objek hadir di Set. Dapatkan objek (indeks int) - Ia mengembalikan elemen atau objek pada 'indeks' yang ditentukan.
4. kosong() - Ini untuk menentukan apakah koleksi membantu karena tidak ada elemen di dalamnya. Ini mengembalikan nilai 'true' jika tidak ada elemen. int lastIndexOf (Object Object) - Ini bekerja mirip dengan kebalikan dari Indeks() Metode. Ia mengembalikan kemunculan terakhir dari Object 'obj' yang ditentukan dan nilai '1' dikembalikan jika tidak ada objek seperti itu dalam daftar. Oleh karena itu, dapat juga digunakan sebagai mengandung() Metode Set Antarmuka.
6. menghapus() - Ini untuk menghapus elemen dari koleksi dengan menetapkannya sebagai parameter untuk metode ini. ListIterator listIterator () - Ini mengembalikan iterator ke indeks awal Daftar.
7. ukuran() - Ini untuk menghitung jumlah objek atau elemen yang dimiliki koleksi. ListIterator listIterator (indeks int) - Ini membantu dalam pengulangan melalui Daftar pemanggilan mulai dari 'indeks' yang ditentukan.
8. - Penghapusan objek (indeks int) - Ini menghapus objek di 'indeks' yang ditentukan dan mengembalikan elemen yang dihapus sebagai hasilnya. Itu juga mengurangi indeks daftar yang dihasilkan untuk mencerminkan penghapusan.
9. - Kumpulan objek (indeks int, Object obj) - Ini adalah untuk menetapkan Object 'obj' ke daftar permintaan pada 'indeks' yang ditentukan.
10. - Daftar subList (mulai int, akhir int) - Ini adalah untuk memasukkan objek dari indeks 'mulai' ke indeks 'akhir' dalam daftar yang telah memanggil Metode.
  • Pemeliharaan Pesanan Penyisipan:

Set tidak pernah mempertahankan urutan unsur-unsur di mana mereka dimasukkan ke dalamnya sedangkan Daftar itu 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.

Set Input: Kucing, Boneka, Apple.

Disimpan sebagai: Apple, Cat, Doll.

Input Daftar: Kucing, Boneka, Apple.

Disimpan sebagai: Kucing, Boneka, Apple.

  • Kehadiran Duplikat:

Set tidak pernah mengizinkan duplikat sedangkan Daftar mengizinkannya. Jika nilai duplikat harus ditambahkan ke daftar maka akan ditimpa. Lihat sampel untuk duplikat Set dan Daftar.

Atur Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 50.

Input Daftar: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 20, 50.

  • Nilai Null:

Set hanya dapat memiliki satu nilai nol sedangkan Daftar dapat memiliki lebih dari satu nilai nol dan tidak terbatas pada nomor apa pun.

Set Input: null, null, Man, Dog, Plane.

Disimpan sebagai: null, Dog, Man, Plane.

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 bekerja dengan Daftar. ListIterator dapat digunakan untuk melintasi maju serta mundur melalui Daftar.

  • Kehadiran Legacy Class:

Set tidak memiliki kelas warisan sedangkan antarmuka Daftar memiliki warisan yang disebut sebagai 'vektor'. Vektor menggunakan antarmuka Daftar dan oleh karena itu mempertahankan urutan penyisipan. Karena upaya sinkronisasi, kinerja vektor dalam penambahan, penghapusan & pembaruan sedikit lebih lambat.

  • Implementasi:

Beberapa implementasi Set adalah HashSet, LinkedHashSet, dan TreeSet. Beberapa implementasi Daftar termasuk ArrayList dan LinkedList.

Kapan menggunakan Set & List?

Penggunaan Set dan Daftar murni tergantung pada persyaratan pemeliharaan urutan penyisipan. Seperti yang telah kita pelajari bahwa suatu Set tidak pernah memelihara urutan penyisipan, ia dapat digunakan ketika urutannya kurang penting. Dengan cara yang sama, gunakan Daftar ketika Anda perlu mempertahankan urutan penyisipan juga.

Perbedaan dalam bentuk tabel:

S.Tidak Perbedaan dalam Set Daftar
1. Pesanan Penyisipan Itu mempertahankan urutan penyisipan. Yang pertama kali dimasukkan tetap di tempat pertama dan seterusnya terlepas dari nilainya. Itu tidak pernah mempertahankan urutan penyisipan.
2. Metode Ini menggunakan metode seperti add (), clear (), berisi (), isEmpty (), remove () dan size (). Itu menggunakan metode seperti add (), addAll (), get (), lastIndexOf (), ListIterator () dengan atau tanpa parameter, hapus (), set (), dan subList ().
3. Duplikat Itu tidak pernah memungkinkan duplikat dan dalam kasus penampilan seperti itu, nilainya ditimpa. Ini memungkinkan duplikat.
4. Nilai kosong Maksimal hanya satu nilai nol. Itu dapat memiliki sejumlah nilai nol.
5. Penggunaan Iterator () & listIterator () Hanya menggunakan metode iterator (). Ini menggunakan iterator () dan listIterator ().
6. Kehadiran Kelas Warisan Tidak ada kelas Legacy. Ini memiliki kelas Legacy yang disebut sebagai vektor.
7. Implementasi Beberapa implementasi antarmuka Set adalah HashSet, LinkedHashSet dan Tree Set. 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, harap beri tahu kami.