Perbezaan antara set dan senarai

Perbezaan antara set dan senarai

Perbezaan antara senarai array dan senarai yang dipautkan

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

Apa itu set?

Kami telah melihat konsep set dalam matematik dan set di sini lebih kurang bermakna sama. Ya, ini adalah koleksi unsur dan dalam kebanyakan kes, koleksi unsur yang serupa. Anda boleh cuba menambahkan unsur -unsur ini ke satu set dan cuba mencetak untuk memahami, bagaimana ia sebenarnya disimpan.

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

Ia sebenarnya disimpan dalam set sebagai 10, 20, 30, 50.

Unsur -unsur disusun di sini dan disimpan tidak dalam urutan penyisipan mereka. Ini adalah salah satu ciri set yang selalu menyusun unsur -unsur sebelum menyimpan dan tentu saja, ada pengecualian kepadanya dan satu itu adalah LinkedHashset kerana ia mengekalkan urutan penyisipan unsur -unsur.

Dalam istilah komputer, set itu termasuk beberapa sifat tambahan seperti kaedah dan warisan. Kaedah sama seperti fungsi dan mereka melakukan tugas tertentu seperti menambah, mengeluarkan atau melangkah melalui set elemen. Sebilangan besar daripada kita terkenal dengan istilah warisan dan ini bermaksud sama di sini. Ya, kita boleh mewarisi kaedah dari koleksinya, supaya ia dapat digunakan dengan antara muka yang ditetapkan. Sekali lagi kita bercakap mengenai istilah baru i.e. antara muka yang ditetapkan, dan tidak lebih daripada keseluruhan unsur -unsur termasuk kaedah.

Cara melaksanakannya?

Hanya untuk pemahaman yang lebih baik, kami telah mewakili satu set dengan sintaksnya. Dari sintaks di bawah, anda dapat mengenal pasti pelbagai jenis set seperti hashset dan treeset.

Import Java.util.*;

SetEpexample Kelas Awam

public static void main (string args [])

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

Set set = hashset baru ();

Cuba

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

Tetapkan.tambah (kiraan [i]);

Sistem.keluar.println (set);

TreeSet SortedSeteg = Treeset Baru (set);

Sistem.keluar.println ("Di sini kita mempunyai output yang disusun:");

Sistem.keluar.println (sortedSeteg);

Sistem.keluar.Println ("Lihat elemen pertama:"+ (integer) sortset.pertama ());

Sistem.keluar.Println ("Lihat elemen terakhir:"+ (integer) sortset.terakhir ());

menangkap (pengecualian e)

Output kod di atas adalah seperti berikut.

[25, 17, 76, 12, 88]
Di sini kita mempunyai output yang disusun:
[12, 17, 25, 76, 88]
Lihat elemen pertama: 12
Lihat elemen terakhir: 88

Apa itu senarai?

Senarai memanjangkan koleksi yang serupa dengan cara set, tetapi ia mengekalkan urutan penyisipan. Anda cuba menambahkan nama berikut ke senarai dan melihat bagaimana ditambah kepadanya.

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

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

Perhatikan pesanan di mana mereka dimasukkan.  Anda boleh mengenal pasti bahawa 'John' menjadi elemen pertama dalam input serta output dan diikuti dengan urutan yang sama di mana nama dimasukkan. Kita juga boleh menganggap ini salah satu sifat utama senarai.

Cara melaksanakannya?

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

Import Java.util.*;
koleksi kelas awamSample

public static void main (string [] args)

Senaraikan A1 = New ArrayList ();
A1.tambah ("John");
A1.tambah ("Nancy");
A1.tambah ("Mary");
A1.tambah ("Alice");
Sistem.keluar.println ("Elemen arraylist adalah");
Sistem.keluar.cetak ("\ t" + a1);

Senarai l1 = LinkedList baru ();
L1.tambah ("Silvia");
L1.tambah ("Arjun");
L1.tambah ("Deepika");
L1.tambah ("Susan");
Sistem.keluar.println ();
Sistem.keluar.println ("Elemen LinkedList adalah");
Sistem.keluar.cetak ("\ t" + l1);

Output sintaks di atas adalah seperti berikut.

Elemen ArrayList adalah

[John, Nancy, Mary, Alice]

Elemen LinkedList

[Silvia, Arjun, Deepika, Susan]

Sangat jelas dari kod di atas bahawa kedua -dua arraylist dan linkedlist mengekalkan urutan penyisipan.

Bagaimana mereka berbeza?

  • Kaedah dan penerangan:

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

S.Tidak Tetapkan - Kaedah Senarai - Kaedah
1. Tambah() - Ia untuk menambah objek ke koleksi. void tambah (indeks int, objek obj) - Ia menambah objek 'obj' pada indeks 'yang ditentukan' dalam senarai yang dipanggil dan memastikan tidak ada elemen yang ditimpa dengan mengalihkan unsur -unsur sebelumnya.
2. jelas () - Ia adalah untuk membuang objek dari koleksi. Boolean Addall (Indeks Int, Koleksi C) - Ia menambah keseluruhan koleksi 'c' ke senarai yang dipanggil dan di 'indeks' yang ditentukan. Ia juga memastikan bahawa tiada elemen ditimpa. Kita juga boleh menyemak ketepatan operasinya dengan memeriksa nilai pulangan. Ia mengembalikan 'benar' jika perubahan itu berjaya sebaliknya, ia mengembalikan nilai 'palsu'.
3. mengandungi () - Ia adalah untuk memeriksa sama ada set itu mengandungi objek tertentu di dalamnya. Ia mengembalikan nilai 'benar' jika objek hadir dalam set. Objek mendapatkan (indeks int) - Ia mengembalikan elemen atau objek pada 'indeks' yang ditentukan.
4. kosong() - Ia adalah untuk menentukan sama ada koleksi itu membantu kerana tiada elemen di dalamnya. Ia mengembalikan nilai 'benar' jika tidak ada elemen. int lastIndexof (objek obj) - Ia berfungsi serupa dengan sebaliknya Indeks() Kaedah. Ia mengembalikan kejadian terakhir objek yang ditentukan 'obj' dan nilai '1' dikembalikan jika tidak ada objek sedemikian dalam senarai. Oleh itu, ia juga boleh digunakan sebagai mengandungi () Kaedah antara muka yang ditetapkan.
6. keluarkan () - Ia adalah untuk mengeluarkan elemen dari koleksi dengan menyatakannya sebagai parameter ke kaedah. ListIterator ListIterator () - Ia mengembalikan iterator ke indeks permulaan senarai.
7. saiz () - Ia adalah untuk mengira bilangan objek atau elemen yang mempunyai koleksi. ListIterator ListIterator (INT Index) - Ia membantu dalam meleleh melalui senarai yang dipanggil bermula pada 'indeks' yang ditentukan.
8. - Buang objek (indeks int) - Ia memadamkan objek pada 'indeks' yang ditentukan dan mengembalikan elemen yang dipadam sebagai hasil. Ia juga mengurangkan indeks senarai yang dihasilkan untuk mencerminkan penghapusan.
9. - Set objek (indeks int, objek obj) - Ia adalah untuk memberikan objek 'obj' ke senarai yang dipanggil di 'indeks' yang ditentukan.
10. - Senaraikan Sublist (Int Start, Int End) - Ia adalah untuk memasukkan objek dari indeks 'mula' ke indeks 'end' dalam senarai yang telah memohon kaedah.
  • Penyelenggaraan pesanan penyisipan:

Set tidak pernah mengekalkan susunan unsur -unsur di mana ia dimasukkan ke dalamnya sedangkan senarai itu mengekalkannya. Terdapat pengecualian untuk peraturan ini untuk LinkedHashset kerana ia mengekalkan urutan penyisipan tetapi set lain seperti Hashset dan Treeset menyusun unsur -unsur sebelum menyimpannya. Perkara yang sama diterangkan dengan contoh di bawah.

Tetapkan Input: kucing, anak patung, epal.

Disimpan sebagai: epal, kucing, anak patung.

Senarai Input: Cat, Doll, Apple.

Disimpan sebagai: kucing, anak patung, epal.

  • Kehadiran pendua:

Satu set tidak pernah membenarkan pendua sedangkan senarai membenarkannya. Sekiranya nilai pendua mesti ditambah ke senarai maka ia akan ditimpa. Lihat sampel untuk menetapkan dan menyenaraikan pendua.

Tetapkan Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 50.

Senarai Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 20, 50.

  • Nilai NULL:

Satu set boleh mempunyai hanya satu nilai null manakala senarai boleh mempunyai lebih daripada satu nilai null dan tidak terhad kepada mana -mana nombor.

Tetapkan Input: Null, Null, Man, Anjing, Plane.

Disimpan sebagai: null, anjing, lelaki, kapal terbang.

Senarai Input: Null, Null, Man, Anjing, Pesawat.

Disimpan sebagai: null, batal, lelaki, anjing, kapal terbang.

  • Penggunaan Iterator & ListIterator:

Kaedah Iterator berfungsi dengan baik dengan kedua -dua set dan senarai sedangkan Listeriterator Kaedah hanya berfungsi dengan senarai. Penyenaraian boleh digunakan untuk melintasi ke hadapan serta ke belakang melalui senarai.

  • Kehadiran kelas warisan:

Set tidak mempunyai kelas warisan sedangkan antara muka senarai mempunyai warisan yang disebut sebagai 'vektor'.  Vektor menggunakan antara muka senarai dan oleh itu ia mengekalkan susunan penyisipan. Oleh kerana usaha penyegerakan, prestasi vektor sebagai tambahan, penghapusan & kemas kini sedikit lebih perlahan.

  • Pelaksanaan:

Sedikit pelaksanaan yang ditetapkan adalah hashset, linkedhashset, dan treeset. Beberapa pelaksanaan senarai termasuk ArrayList dan LinkedList.

Bila Menggunakan Set & Senarai?

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

Perbezaan dalam bentuk jadual:

S.Tidak Perbezaan dalam Tetapkan Senarai
1. Pesanan penyisipan Ia mengekalkan urutan penyisipan. Yang dimasukkan pertama kekal di tempat pertama dan sebagainya tanpa mengira nilainya. Ia tidak pernah mengekalkan urutan penyisipan.
2. Kaedah Ia menggunakan kaedah seperti add (), jelas (), mengandungi (), isempty (), keluarkan () dan saiz (). Ia menggunakan kaedah seperti add (), addall (), get (), lastIndexof (), listIterator () dengan atau tanpa parameter, keluarkan (), set (), dan sublist ().
3. Pendua Ia tidak pernah membenarkan pendua dan dalam hal penampilan tersebut, nilai ditimpa. Ia membolehkan pendua.
4. Nilai NULL Ia hanya boleh mempunyai satu nilai null pada maksimum. Ia boleh mempunyai sejumlah nilai nol.
5. Penggunaan Iterator () & ListIterator () Ia hanya menggunakan kaedah pengarah (). Ia menggunakan kedua -dua iterator () serta listIterator ().
6. Kehadiran kelas warisan Tidak ada kelas warisan. Ia mempunyai kelas warisan yang dipanggil sebagai vektor.
7. Pelaksanaan Beberapa pelaksanaan antara muka yang ditetapkan adalah hashset, LinkedHashset dan set pokok. Beberapa pelaksanaan antara muka senarai adalah LinkedList dan ArrayList.

Harapan, kami telah memasukkan setiap perbezaan yang mungkin antara set dan senarai. Sekiranya anda merasakan bahawa kami telah terlepas sesuatu, sila beritahu kami.