Perbezaan antara Set dan Senarai Perbezaan Antara

Anonim

Perbezaan antara Senarai Array dan Senarai Berkaitan

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

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 sebagai 10, 20, 30, 50.

Unsur-unsur disusun di sini dan disimpan tidak dalam urutan sisipan 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 sisipan unsur-unsur.

Dalam istilah komputer, Set termasuk beberapa ciri tambahan seperti Kaedah dan Warisan. Kaedah adalah seperti fungsi dan mereka melakukan tugas tertentu seperti menambah, membuang atau melewatkan melalui set elemen. Kebanyakan kita terkenal dengan istilah Pewarisan 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 tentang istilah baru i. e. Set Antara Muka, dan ia tidak lebih dari sekumpulan set elemen termasuk Kaedah.

Bagaimana untuk melaksanakannya?

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.

java import. util. *; { public class Setexample {

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 ++) {

ditetapkan. tambah (mengira [i]);

}

Sistem. keluar. println (set);

TreeSet sortedSeteg = TreeSet baru (set); Sistem

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

. keluar. println (sortedSeteg); Sistem

. keluar. println ("Lihat elemen Pertama:" + (Integer) disusunSet terlebih dahulu ()); Sistem

. keluar. println ("Lihat unsur terakhir:" + (Integer) sortedSet terakhir ());

}

menangkap (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 elemen terakhir: 88

Apakah Senarai?

Senarai meluas Koleksi yang serupa dengan cara Set, tetapi ia mengekalkan urutan pemasukan. 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 perintah yang mereka masukkan. Anda boleh mengenal pasti bahawa 'John' adalah elemen pertama dalam input serta output dan diikuti oleh urutan yang sama di mana 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.

java import. util. *;

Collectionssample public class {

public static void main (String [] args) {

List a1 = ArrayList new ();

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.

Unsur ArrayList

[John, Nancy, Mary, Alice]

Unsur-unsur Pautan Berkaitan

[Silvia, Arjun, Deepika, Susan]

Sangat jelas dari kod di atas bahawa kedua ArrayList dan LinkedList mengekalkan susunan sisipan.

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. add ()
- Ia adalah untuk menambah objek pada koleksi. kekosongan tambah (indeks int, obj Obj) - Ia menambah objek 'obj' pada 'indeks' yang ditentukan dalam senarai yang digunakan dan ia memastikan bahawa tiada unsur ditimpa oleh peralihan unsur-unsur terdahulu. 2. jelas () -
Ini adalah untuk membuang objek dari koleksi. boolean addAll (int index, Collection c) - Ia menambah keseluruhan koleksi 'c' ke senarai yang digunakan 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' yang ditentukan. 4. isEmpty ()
- Ini adalah untuk menentukan sama ada koleksi itu membantu dalam sebagai unsur-unsur di dalamnya. Ia mengembalikan nilai 'benar' jika tiada unsur. int lastIndexOf (Object obj) - Ia berfungsi sama dengan sebaliknya indexOf () Kaedah. Ia mengembalikan kejadian terakhir Object 'obj' yang ditentukan dan nilai '1' dikembalikan jika tidak ada objek sedemikian dalam senarai. Oleh itu, ia juga boleh digunakan sebagai mengandungi () Kaedah Set Antara Muka. 6. keluarkan ()
- Ia adalah untuk menghapuskan 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 unsur yang mempunyai koleksi. ListIterator listIterator (int index) - Ini membantu untuk melewatinya melalui Senarai yang menggunakan bermula pada 'indeks' yang ditentukan. 8. -
Objek menghapus (indeks int) - Ia memadamkan objek pada 'indeks' yang ditentukan dan mengembalikan elemen yang dihapuskan sebagai hasilnya. Ia juga mengurangkan indeks senarai yang dihasilkan untuk mencerminkan pemadaman. 9. -
Set objek (indeks int, obj Obj) - Ini adalah untuk menyerahkan objek Obj 'ke senarai yang digunakan pada' indeks 'yang ditentukan. 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. Penyenggaraan Pesanan Kemasukan: The Set tidak pernah mengekalkan susunan unsur-unsur di mana ia dimasukkan ke dalamnya manakala Senarai tidak mengekalkannya. Terdapat pengecualian kepada peraturan ini untuk LinkedHashSet kerana ia mengekalkan urutan pemasukan 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.

Input 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 ganti. Lihatlah sampel untuk Tetapkan dan Senarai pendua.

  • Input Input: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 50.

Input List: 10, 20, 20, 50.

Disimpan sebagai: 10, 20, 20, 50.

Nilai-nilai Null:

A Set hanya boleh mempunyai satu nilai batal manakala Senarai boleh mempunyai lebih daripada satu nilai nol dan tidak terhad kepada mana-mana nombor.

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

Disimpan sebagai: null, Dog, Man, Plane.

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

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

Penggunaan Iterator & ListIterator:

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

  • Kehadiran Kelas Legacy:

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

  • 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 urutan 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. Tiada

Perbezaan dalam

Tetapkan Senarai 1. Perintis Kemasukan
Ia mengekalkan susunan sisipan. Yang pertama dimasukkan masih di tempat pertama dan sebagainya tanpa mengira nilainya. Ia tidak pernah mengekalkan perintah penyisipan. 2. Kaedah
Ia menggunakan kaedah seperti add (), clear (), mengandungi (), 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 membenarkan duplikasi dan dalam kes penampilan tersebut, nilai akan ditimpa semula. Ia membenarkan pendua. 4. Nilai-nilai Null
Ia boleh mempunyai hanya satu nilai null pada maksimum. Ia boleh mempunyai apa-apa bilangan nilai nol. 5. Penggunaan Iterator () & listIterator ()
Ia hanya menggunakan iterator kaedah (). Ia menggunakan kedua-dua iterator () serta 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. Harapan, kami telah memasukkan setiap perbezaan yang mungkin antara Set dan Senarai. Jika anda merasakan bahawa kami telah melepaskan sesuatu, sila beritahu kami.