Perbezaan antara Set dan Senarai

Perbezaan antara Senarai Array dan Senarai Terkait

Sebelum kita masuk ke dalam perbezaan sebenar, marilah kita mengetahui apa yang mereka sebenarnya?

Apa itu Set?

Kami telah melihat konsep Set dalam matematik dan Set di sini lebih kurang sama. Ya, ia adalah koleksi unsur-unsur dan dalam kebanyakan kes, koleksi unsur-unsur serupa. Anda boleh cuba menambah unsur-unsur ini ke Set dan cuba percetakan untuk memahami, bagaimana ia sebenarnya disimpan.

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

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

Unsur-unsur disusun di sini dan disimpan tidak dalam urutan penyisipan mereka. Ini adalah salah satu ciri Set yang sentiasa menyusun unsur-unsur sebelum menyimpan dan tentu saja, ada pengecualian dan satu seperti LinkedhashSet kerana ia mengekalkan urutan pemasukan unsur-unsur.

Dalam istilah komputer, Set termasuk beberapa ciri tambahan seperti Kaedah dan Pusaka. Kaedah adalah seperti fungsi dan mereka melakukan tugas-tugas tertentu seperti menambah, membuang atau melewatkan melalui set elemen. Kebanyakan kita terkenal dengan istilah Warisan dan ia bermakna sama di sini. Ya, kita boleh mewarisi Kaedah dari Koleksinya, supaya ia dapat digunakan dengan Set Antara Muka. Sekali lagi kita bercakap mengenai istilah baru iaitu Set Antara Muka, dan ia tidak lebih daripada keseluruhan set elemen termasuk Kaedah.

Bagaimana untuk melaksanakannya?

Hanya untuk pemahaman yang lebih baik, kami telah mewakili Set dengan Sintaksnya. Dari sintaks di bawah, anda boleh mengenal pasti jenis Set yang berbeza seperti HashSet dan TreeSet.

import java.util. *;

Setexample kelas awam

public static void main (String args [])

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

Tetapkan set = new HashSet ();

cuba

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

set.add (mengira [i]);

System.out.println (set);

TreeSet sortedSeteg = new TreeSet (set);

System.out.println ("Di sini kita mempunyai output disusun:");

System.out.println (sortedSeteg);

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

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

tangkapan (Pengecualian e)

Pengeluaran kod di atas adalah seperti berikut.

[25, 17, 76, 12, 88]
Di sini kita mempunyai output disusun:
[12, 17, 25, 76, 88]
Lihat unsur Pertama: 12
Lihat unsur terakhir: 88

Apa itu Senarai?

Senarai A meluaskan Koleksi yang serupa dengan cara Set yang dibuat, tetapi ia mengekalkan urutan penyisipan. Anda cuba menambah nama-nama berikut ke dalam senarai dan lihat bagaimana ditambahkan kepadanya.

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

Bagaimana ia disimpan dalam Senarai: John, Nancy, Mary, Alice.

Hanya perhatikan susunan di mana ia dimasukkan. Anda boleh mengenal pasti bahawa 'John' adalah elemen pertama dalam input serta output dan diikuti dengan susunan yang sama di mana nama-nama dimasukkan. Kita juga boleh mempertimbangkan salah satu ciri utama Senarai ini.

Bagaimana untuk melaksanakannya?

Marilah kita melihat beberapa kaedah Senarai seperti ArrayList dan LinkedList dalam sintaks di bawah.

import java.util. *;
koleksi awam Collectionssample

public static void main (String [] args)

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

Senaraikan l1 = LinkedList baru ();
l1.add ("Silvia");
l1.add ("Arjun");
l1.add ("Deepika");
l1.add ("Susan");
System.out.println ();
System.out.println ("Elemen LinkedList adalah");
System.out.print ("\ t" + l1);

Hasil sintaks di atas adalah seperti berikut.

Elemen ArrayList adalah

[John, Nancy, Mary, Alice]

Elemen LinkedList

[Silvia, Arjun, Deepika, Susan]

Ia sangat jelas dari kod di atas bahawa kedua ArrayList dan LinkedList mengekalkan perintah penyisipan.

Bagaimana mereka berbeza?

  • Kaedah dan Keterangan:

Set dan Senarai mempunyai kaedah tersendiri dan marilah kita melihat beberapa dari mereka di sini.

S.No Tetapkan - Kaedah Senarai - Kaedah
1. Tambah() - Ia adalah untuk menambah objek kepada koleksi. tidak sah tambah (indeks int, objek Obj) - Ia menambah objek 'obj' pada 'indeks' yang ditentukan dari senarai yang memohon dan ia memastikan bahawa tiada unsur ditimpa oleh peralihan unsur sebelumnya.
2. jelas () - Ia adalah untuk membuang objek dari koleksi. boolean addAll (int index, Collection c) - Ia menambah keseluruhan koleksi 'c' ke senarai yang memohon dan pada 'indeks' yang ditentukan. Ia juga memastikan bahawa tiada elemen yang ditimpa. Kita juga boleh menyemak ketepatan operasi dengan memeriksa nilai pulangan. Ia mengembalikan 'benar' jika perubahan tersebut tidak berjaya, ia mengembalikan nilai 'palsu'.
3. mengandungi () - Ia adalah untuk memeriksa sama ada Set mengandungi objek tertentu di dalamnya. Ia mengembalikan nilai 'benar' jika objek itu terdapat dalam Set. Objek mendapatkan (indeks int) - Ia mengembalikan elemen atau objek pada 'indeks'.
4. kosong() - Ia adalah untuk menentukan sama ada koleksi itu membantu dalam kerana tiada unsur di dalamnya. Ia mengembalikan nilai 'benar' jika tiada unsur. int lastIndexOf (Object obj) - Ia berfungsi sama dengan sebaliknya Indeks() Kaedah. Ia mengembalikan kejadian terakhir objek Obj 'yang dinyatakan' dan nilai '1' dikembalikan jika tidak ada objek sedemikian dalam senarai. Oleh itu, ia juga boleh digunakan sebagai mengandungi () Kaedah Antara Muka Set.
6. keluarkan () - Ia adalah untuk mengeluarkan elemen dari koleksi dengan menyatakannya sebagai parameter kepada kaedah. ListIterator listIterator () - Ia mengembalikan penyesuai ke indeks permulaan Senarai.
7. saiz () - Ia adalah mengira bilangan objek atau elemen yang mempunyai koleksi. ListIterator listIterator (int index) - Ia membantu dalam lelaran melalui Senarai yang memohon bermula pada 'indeks'.
8. - Objek mengeluarkan (int index) - Ia memadamkan objek pada 'indeks' yang ditentukan dan mengembalikan elemen yang dipadamkan sebagai hasilnya. Ia juga mengurangkan indeks senarai yang dihasilkan untuk mencerminkan pemadaman.
9. - Objek yang ditetapkan (indeks int, Oby Objek) - Ia adalah untuk menyerahkan objek Obj 'kepada senarai yang menggunakan pada' indeks '.
10. - Senarai sublist (int start, int end) - Ini adalah untuk memasukkan objek dari indeks 'bermula' ke indeks 'akhir' dalam senarai yang telah menggunakan Kaedah tersebut.
  • Penyelenggaraan Pesanan Kemasukan:

The Set tidak pernah memelihara susunan unsur-unsur di mana ia dimasukkan ke dalamnya sedangkan Senarai tidak mengekalkannya. Terdapat pengecualian kepada peraturan ini untuk LinkedHashSet kerana ia mengekalkan urutan penyisipan tetapi Set yang lain seperti HashSet dan TreeSet menyusun elemen sebelum menyimpannya. Perkara yang sama digambarkan dengan contoh di bawah.

Tetapkan Input: Cat, Doll, Apple.

Disimpan sebagai: Apple, Cat, Doll.

Senaraikan Input: Cat, Doll, Apple.

Disimpan sebagai: Cat, Doll, Apple.

  • Kehadiran Duplikat:

Set A tidak pernah membenarkan pendua manakala Senarai membenarkannya. Jika nilai pendua perlu ditambah ke senarai maka ia akan ditimpa semula. Lihatlah sampel untuk Tetapkan dan Senaraikan pendua.

Tetapkan Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 50.

Senaraikan Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 20, 50.

  • Nilai Null:

Set A hanya boleh mempunyai satu nilai batal sedangkan Senarai boleh mempunyai lebih daripada satu nilai nol dan tidak terhad kepada sebarang nombor.

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

Disimpan sebagai: null, Dog, Man, Plane.

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

Disimpan sebagai: null, null, Man, Dog, Plane.

  • Penggunaan Iterator & SenaraiIterator:

Kaedah Iterator berfungsi dengan baik dengan Set dan Senarai sedangkan kaedah ListIterator berfungsi hanya dengan Senarai. ListIterator boleh digunakan untuk melangkah ke hadapan dan juga mundur melalui Senarai.

  • Kewujudan Kelas Legacy:

Set itu tidak mempunyai kelas warisan sedangkan antara muka Senarai mempunyai warisan yang disebut sebagai 'vektor'. Sebuah vektor menggunakan antara muka Senarai dan oleh itu ia mengekalkan urutan penyisipan. Oleh kerana usaha penyelarasan, prestasi vektor dalam penambahan, pemadaman & kemas kini agak perlahan.

  • Pelaksanaan:

Beberapa pelaksanaan Set adalah HashSet, LinkedHashSet, dan TreeSet. Beberapa pelaksanaan Senarai termasuk ArrayList dan LinkedList.

Bila hendak menggunakan Set & Senarai?

Penggunaan Set dan Senarai semata-mata bergantung kepada keperluan penyelenggaraan pesanan sisipan. Seperti yang telah kita ketahui bahawa Set tidak pernah mengekalkan susunan penyisipan, ia boleh digunakan apabila perintah itu kurang penting. Dengan cara yang sama, gunakan Senarai apabila anda perlu mengekalkan urutan penyisipan juga.

Perbezaan dalam bentuk jadual:

S.No Perbezaan dalam Tetapkan Senarai
1. Perintah Insertion Ia mengekalkan perintah pemasukan. Yang pertama dimasukkan sebagai tempat pertama dan sebagainya tanpa mengira nilainya. Ia tidak pernah mengekalkan pesanan kemasukan.
2. Kaedah Ia menggunakan kaedah seperti add (), clear (), contains (), isEmpty (), remove () and size (). Ia menggunakan kaedah seperti add (), addAll (), get (), lastIndexOf (), ListIterator () dengan atau tanpa parameter, keluarkan (), set (), dan subList ().
3. Duplikat Ia tidak akan membenarkan pendua dan dalam kes penampilan sedemikian, nilai akan ditimpa semula. Ia membolehkan pendua.
4. Nilai Null Ia boleh mempunyai hanya satu nilai nol pada maksimum. Ia boleh mempunyai apa-apa bilangan nilai nol.
5. Penggunaan Iterator () & listIterator () Ia hanya menggunakan kaedah iterator (). Ia menggunakan kedua-dua iterator () dan juga senaraiIterator ().
6. Kehadiran Kelas Legacy Tiada kelas Warisan. Ia sebagai kelas Legacy dipanggil sebagai vektor.
7. Pelaksanaan Beberapa pelaksanaan antara muka Set adalah HashSet, LinkedHashSet dan Tree Set. Beberapa pelaksanaan antara muka Senarai adalah LinkedList dan ArrayList.

Harap, kami telah memasukkan setiap perbezaan yang mungkin antara Set dan Senarai. Jika anda merasakan bahawa kami telah melepaskan sesuatu, sila beritahu kami.