Menu Close

Perbedaan antara Set dan Daftar

Ketika Anda pertama kali belajar tentang pemrograman, Anda diperkenalkan dengan dua struktur data: set dan daftar. Kedua struktur data tersebut memiliki kekuatan dan kelemahan masing-masing, tetapi mana yang terbaik untuk kebutuhan Anda? Dalam posting blog ini, kita akan membahas perbedaan antara set dan list dan membantu Anda memutuskan mana yang terbaik untuk proyek Anda. Pantau terus!

Apa yang Ditetapkan?

Set adalah antarmuka yang memperluas Koleksi. Ini adalah kumpulan objek yang tidak terurut di mana nilai duplikat tidak dapat disimpan. Pada dasarnya, Set diimplementasikan oleh HashSet, LinkedHashSet atau TreeSet. Set juga menyediakan konstruktor untuk mengonversi dari objek Collection lainnya ke Set.

  • Set tidak mempertahankan urutan penyisipan seperti pada antarmuka Daftar. Set hanya menyimpan satu salinan nilai duplikat. Tetapkan tujuan utama adalah untuk menghapus duplikat dari Koleksi.
  • Set juga tidak mengizinkan akses acak ke elemen seperti yang disediakan List melalui metode get(). Set beroperasi dengan Iterator, tetapi Anda tidak dapat mengakses elemen dengan nomor indeks seperti yang Anda lakukan dengan ListIterator. Java Set juga memberikan keuntungan tambahan dari fail-safe yaitu setiap perubahan yang dibuat dalam kumpulan Set tidak akan tercermin kembali dalam objek Set asli.
  • Anda harus secara eksplisit membuat salinan Set jika Anda ingin set asli tidak terpengaruh oleh perubahan apa pun yang dibuat pada objek set salinan. Karena Set berisi elemen unik, kita dapat menggunakan metode Set seperti union(), intersect(), dan difference() untuk melakukan operasi set matematis pada dua objek Set berbeda yang hanya berisi elemen unik.

Apa itu Daftar?

Daftar adalah kumpulan elemen yang dipesan, di mana nilai duplikat diperbolehkan. Daftar mempertahankan urutan penyisipan, yaitu urutan elemen ditambahkan ke Daftar. Indeks daftar dimulai dari 0. Daftar memungkinkan akses acak karena mendukung pengambilan elemen berbasis indeks.

  • ArrayList dan LinkedList adalah dua implementasi Daftar yang paling umum digunakan di java. ArrayList membuat array objek dinamis yang artinya dapat tumbuh atau menyusut sesuai kebutuhan kita.
  • Dalam ArrayList, manipulasi lambat karena banyak pergeseran yang perlu terjadi jika ada elemen yang dihapus dari daftar larik. Kelas ArrayList mengimplementasikan antarmuka Daftar dan didasarkan pada struktur data Array. LinkedList membuat daftar objek yang ditautkan ganda.
  • Di LinkedList, manipulasi berlangsung cepat karena tidak perlu ada pergeseran jika ada elemen yang dihapus dari daftar. Kelas LinkedList memperluas kelas AbstractSequentialList dan mengimplementasikan antarmuka List & Deque.
  • Ada beberapa perbedaan antara Daftar dan Set yang diberikan di bawah ini: Daftar mempertahankan urutan penyisipan sementara Set tidak mempertahankan urutan apa pun (elemen akan diambil oleh kode hash).

Dalam Daftar duplikat diperbolehkan tetapi dalam objek Set hanya satu objek yang diperbolehkan untuk nilai tertentu (harus unik). List memungkinkan akses acak untuk mengambil elemen apa pun sementara Set tidak mendukungnya karena Set menggunakan hashing untuk mengambil nilai sementara List menggunakan metode get(index) – pengindeksan numerik untuk mengambil elemen dari List .

Perbedaan antara Set dan Daftar

Set dan List adalah dua struktur data yang tersedia di java. Set adalah kumpulan objek yang tidak diurutkan di mana nilai duplikat tidak dapat disimpan. Ingat, Set tidak mengizinkan duplikat. Daftar adalah kumpulan objek yang dipesan di mana nilai duplikat dapat disimpan.

  • ArrayList dan LinkedList adalah dua kelas yang mengimplementasikan antarmuka Daftar. TreeSet dan HashSet adalah kelas yang mengimplementasikan antarmuka Set.
    Sekarang mari kita lihat beberapa perbedaan penting antara Set dan List dengan bantuan poin-poin di bawah ini:
  • – Set adalah koleksi yang tidak diurutkan sedangkan Daftar adalah koleksi yang dipesan. Set menyimpan elemennya dengan menghitung kode hash sementara di sisi lain; Daftar menggunakan daftar tertaut ganda untuk menyimpan elemennya yang memungkinkan untuk menyimpan nilai duplikat juga.
    – Set tidak mempertahankan urutan apa pun untuk menyimpan elemen sementara List melakukannya. Namun, jika kita ingin mencetak konten Set, itu akan dicetak dalam urutan yang diurutkan (misalnya: menurut abjad untuk Strings).
  • – Di Set, kita tidak dapat mengakses elemen berdasarkan indeksnya, tetapi di Daftar, kita dapat melakukannya karena menggunakan larik dinamis (yang melacak indeks).
    – Set diimplementasikan oleh HashSet, LinkedHashSet, dan TreeSet sedangkan List diimplementasikan oleh kelas ArrayList dan LinkedList.

Kesimpulan

Kami telah melihat perbedaan antara satu set dan daftar. Intinya, satu set adalah kumpulan item unik yang tidak diurutkan sedangkan daftar adalah kumpulan item unik yang dipesan. Kumpulan berguna saat Anda ingin menemukan sesuatu yang spesifik atau menguji keanggotaan dalam kumpulan. Daftar berguna saat Anda perlu melacak hal-hal atau mengulanginya.