racavedigger.com
Daily insights on Bitcoin and crypto markets
  • Facebook
  • Pinterest
  • Home
  • News

Do Set Recree Duplicate Nilai?

Berita

Jika kami mencoba memasukkan nilai duplikat ke dalam “set”, apa yang akan terjadi? Apakah kami mendapatkan kesalahan pengompir

Saat kami mencoba memasukkan nilai duplikat dalam “set”, itu tidak menambahkan nilai duplikat. Metode “tambahkan” antarmuka yang ditetapkan mengembalikan nilai boolean, menunjukkan apakah elemen itu berhasil ditambahkan atau tidak. Jika kami mencoba menambahkan nilai duplikat, metode ini akan mengembalikan false. Perilaku ini konsisten di berbagai bahasa pemrograman, seperti Java dan Swift.

Cara membuat set dengan elemen duplikat di Swift

Di Swift, satu set adalah kumpulan elemen unik tanpa duplikat. Namun, dimungkinkan untuk membuat set dengan elemen duplikat. Saat kami membuat set dengan elemen duplikat di Swift, bahasa tersebut mengakui bahwa duplikat harus dihapus. Oleh karena itu, secara otomatis menghapus semua elemen duplikat. Fitur ini membuat set Swift sangat berguna untuk menangani koleksi nilai unik.

Ringkasan

Satu set adalah kumpulan elemen unik, artinya tidak mengizinkan duplikat. Namun, dalam beberapa kasus, kami mungkin ingin membuat satu set yang berisi elemen duplikat. Swift secara otomatis mengenali duplikat dalam set dan menghapusnya. Artikel ini mengeksplorasi cara membuat set dengan elemen duplikat di Swift dan menunjukkan perilaku set saat nilai duplikat ditambahkan.

Sintaksis

Biarkan SetName: Setel<Elemen> = [DuplicateElements]

Sintaks untuk membuat set dengan elemen duplikat di Swift sangat mudah. Cukup nyatakan variabel dengan jenis set, diikuti oleh operator penugasan dan elemen yang tertutup dalam kurung persegi. Jenis set dapat ditentukan untuk lebih membatasi elemen ke jenis tertentu, seperti int atau string.

Parameter

  • SetName: Ini adalah nama set yang ingin kami buat.
  • DuplicateElements: Ini adalah elemen yang ingin kami tambahkan ke set. Elemen -elemen ini bisa menjadi duplikat.
  • Ketik: Ini adalah jenis set, seperti int, string, dll. Itu menentukan jenis elemen yang dapat disimpan di set.

Nilai pengembalian

Setelah membuat set dengan elemen duplikat, nilai yang dikembalikan akan menjadi set yang membuang semua duplikat. Swift secara otomatis menghapus setiap elemen duplikat dari set untuk memastikan bahwa mereka tetap koleksi unik.

Impor Swift
Biarkan LectureID: Setel<Int> = [023, 023, 055, 034, 065, 065, 134]
Biarkan userid: atur<Rangkaian> = ["24SD2", "24SD2", "24SD2", "24SD2"]
Let EveNumbers: Setel<Int> = [2, 4, 6, 8, 10, 6, 2, 10]
Let ISstudentnice: Setel<Bool> = [false, true, true, false, false]
Biarkan Harga: Setel<Dobel> = [24.32, 45.32, 40.00, 1.45, 1.45, 24.32]
Biarkan Nama: Setel<Rangkaian> = ["Theodore", "Theodore", "Ruth", "Chichi", "Amaka", "Theodore"]
Cetak (LectureID)
cetak (userid)
cetak (lebih banyak jumlah)
Cetak (ISstudentnice)
cetak (harga)
cetak (nama)

Penjelasan

  • Baris 4-9: Kami membuat set menggunakan set jenis dan menentukan jenis elemennya. Setiap set berisi beberapa elemen duplikat.
  • Baris 12-17: Kami mencetak set ke konsol untuk mengamati perilaku set dengan duplikat.
  • Kami mengamati bahwa Swift secara otomatis menghapus elemen duplikat dari set.

Program sederhana untuk ditunjukkan, apa yang terjadi jika Anda menambahkan elemen duplikat ke satu set.

Kami dapat membuat set dalam berbagai bahasa pemrograman, bukan hanya Swift. Misalnya, di Java, kami dapat membuat set menggunakan kelas hashset dan menyimpan berbagai jenis nilai. Program Java di bawah ini menunjukkan bagaimana set menangani elemen duplikat:

Impor Java.util.Hashset;
Impor Java.util.Mengatur;
kelas publik canaddduplicateValueinset {
    public static void main (string [] args) {
        Mengatur&lt;Rangkaian&gt; uniquecolours = hashset baru <> ();
        Uniquecolours.tambahkan ("merah");
        Uniquecolours.tambahkan ("hijau");
        Uniquecolours.tambahkan ("biru");
        Uniquecolours.tambahkan ("biru"); / * Menambahkan nilai duplikat di sini, tidak ada kesalahan kompiler dan kode berfungsi dengan baik tetapi tidak menambahkan nilai duplikat */
        untuk (warna string: uniquecolours) {
            Sistem.keluar.println (warna);
        }
    }
}

Dalam program Java di atas, kami membuat set yang disebut uniquecolours menggunakan kelas hashset. Kami menambahkan warna yang berbeda ke set, termasuk nilai duplikat “biru”. Program tidak melempar kesalahan kompilasi atau runtime apa pun. Ini berfungsi dengan baik dan tidak menyimpan nilai duplikat. Saat kami mengulangi set dan mencetak nilainya, kami mengamati bahwa nilai duplikat “biru” tidak ada.

Jika kami mencoba memasukkan nilai duplikat di a &ldquo;Mengatur&rdquo;, apa yang akan terjadi? Apakah kami mendapatkan kesalahan pengompir

Hanya itu tidak&rsquo;T tambahkan duplikat nilai. Boolean menambahkan(E e) – menambahkan yang ditentukan elemen untuk ini mengatur Jika belum ada (operasi opsional). Sebagai, menambahkan() Metode mengembalikan boolean dan seterusnya menambahkan duplikat itu akan mengembalikan false. Di bawah Jawa Contoh kode sumber berfungsi dengan baik dan JVM (mesin virtual java) tidak&rsquo;t mengeluh.

Cara membuat set dengan elemen duplikat di Swift

Banyak kandidat ditolak atau dikurung di bawah karena kinerja yang buruk dalam wawancara desain sistem mereka. Menonjol dalam wawancara desain sistem dan dipekerjakan pada tahun 2023 dengan kursus gratis yang populer ini.

Dapatkan kursus gratis

Dapatkan kursus gratis

Ringkasan

Satu set adalah kumpulan elemen unik tanpa duplikat. Namun, kami dapat membuat set dengan elemen duplikat. Tapi keajaibannya adalah bahwa Swift akan tahu bahwa elemen duplikat seharusnya menjadi satu. Oleh karena itu, itu akan menghapus semua duplikat.

Sintaksis

Biarkan setName: set = [DuplicateElements]
// dengan menentukan jenis set
Biarkan setName: set = [DuplicateElements]

Sintaks untuk membuat elemen duplikat dari satu set

Parameter

  • SetName: Ini adalah nama set yang ingin kami buat.
  • DuplicateElements: Ini mewakili elemen set yang merupakan duplikat.
  • Jenis: Ini adalah jenis set. Bisa jadi int, string, dan sebagainya.

Nilai pengembalian

Nilai yang dikembalikan setelah membuat set dengan elemen duplikat akan menjadi set yang membuang semua duplikat.

Impor Swift
// Buat koleksi set duplikat
Biarkan LectureID: Set = [023, 023, 055, 034, 065.065, 134]
Biarkan userid: set = ["24SD2", "24SD2", "24SD2", "24SD2"]
Let Evenumbers: Set = [2, 4, 6, 8, 10, 6, 2, 10]
Let iSstudentnice: set = [false, true, true, false, false]
Biarkan Harga: Set = [24.32, 45.32, 40.00, 1.45, 1.45, 24.32]
Biarkan Nama: Set = ["Theodore", "Theodore", "Ruth", "Chichi", "Amaka", "Theodore"]
// Cetak set ke konsol
Cetak (LectureID)
cetak (userid)
cetak (lebih banyak jumlah)
Cetak (ISstudentnice)
cetak (harga)
cetak (nama)

Membuat Objek Set dengan Elemen Duplikat di SWIFT

Penjelasan

  • Baris 4–9: Kami membuat beberapa set. Setiap set berisi beberapa duplikat.
  • Baris 12–17: Kami mencetak set ke konsol.
  • Kami mengamati bahwa Swift membuang duplikat apa pun.

Jika kami mencoba memasukkan nilai duplikat di a &ldquo;Mengatur&rdquo;, apa yang akan terjadi? Apakah kami mendapatkan kesalahan pengompir?

Hanya itu tidak&rsquo;T tambahkan duplikat nilai. Boolean menambahkan(E e) – menambahkan yang ditentukan elemen untuk ini mengatur Jika belum ada (operasi opsional). Sebagai, menambahkan() Metode mengembalikan boolean dan seterusnya menambahkan duplikat itu akan mengembalikan false. Di bawah Jawa Contoh kode sumber berfungsi dengan baik dan JVM (mesin virtual java) tidak&rsquo;t mengeluh.

Jika kami memasukkan nilai duplikat ke set, kami tidak&rsquo;T Dapatkan kesalahan waktu kompilasi atau jalankan waktu. Itu tidak&rsquo;t Tambahkan nilai duplikat di set.

Di bawah ini adalah metode add () dari antarmuka yang ditetapkan dalam koleksi java yang mengembalikan nilai boolean baik benar atau salah ketika objek sudah ada di set.

[Boolean add (e e) – Menambahkan elemen yang ditentukan ke set ini jika belum ada . Pengembalian: Nilai Boolean Benar/Salah.]

Program sederhana untuk ditunjukkan, apa yang terjadi jika Anda menambahkan elemen duplikat ke satu set.

Kami telah membuat set untuk menyimpan berbagai jenis warna dengan menggunakan Atur referensi antarmuka dengan objek kelas hashset. Kami menambahkan berbagai jenis warna e.G. Merah, hijau dan biru dll. di set dan menampilkan warna pada layar konsol dengan mengulangi set in for loop.

Secara sengaja, kami telah menambahkan warna biru lagi untuk memeriksa penerimaan duplikat hashset. Perhatikan bahwa program Java akan berfungsi dengan baik dan tidak melempar kompiler atau menjalankan kesalahan waktu apa pun. Tapi, itu tidak akan menyimpan nilai duplikat.

Contoh kode sumber: untuk memeriksa Jika java set, tambahkan elemen yang sama atau tidak

Impor Java.util.Hashset; Impor Java.util.Mengatur; Kelas publik canaddduplicateValueinset < public static void main(String[] args) < Set uniqueColours = new HashSet(); uniqueColours.add("Red"); uniqueColours.add("Green"); uniqueColours.add("Blue"); uniqueColours.add("Blue"); /*Adding duplicate value here, No compiler error and code works fine but doesn't add duplicate value */ System.out.println("Colours available in set are:"); for (String c : uniqueColours)< System.out.println(c); >>> 

Keluaran:
Warna yang tersedia dalam set adalah:
Biru
Merah
Hijau

Pertanyaan dan jawaban penyegaran cepat di java set tambahkan duplikat.

  • Q) Hashset dapat memiliki nilai duplikat?
    • A) Tidak, hashset tidak dapat memiliki nilai duplikat.
    • A) Nilai boolean dikembalikan dengan metode add () i.e. Benar di objek tidak ada dan salah jika sudah ada di set.
    • A) Program tidak akan menunjukkan kesalahan kompiler atau menjalankan kesalahan waktu dan itu tidak akan mengizinkan duplikat.

    Jika kami mencoba memasukkan nilai duplikat di a &ldquo;Mengatur&rdquo;, apa yang akan terjadi? Apakah kami mendapatkan kesalahan pengompir?

    • Berikut 4 cara untuk mencetak elemen daftar array di java
    • Apa antrian prioritas java dengan contoh aplikasi waktu nyata?
    • Apa yang sebanding dan komparator di java?
    • Jelaskan vektor, kompleksitas waktu dan bagaimana vektor tumbuh di java
    • Koleksi Java Wawancara singkat FAQ dengan jawaban – NYATA

    Topik yang dikelompokkan

    Pertanyaan Wawancara Java

    • Pertanyaan Java inti
    • Pertanyaan Koleksi Java
    • Pertanyaan multithreading Java
    • Tutorial Java
    • Latihan Java

    Pertanyaan Wawancara C/C ++

    • Pemrograman C
    • Pertanyaan Dasar C ++
    • Pertanyaan Muka C ++
    • Pertanyaan Pemrograman C ++
    • Contoh Pemrograman C ++

    C# Pertanyaan Wawancara

    Java MCQ

    • C# Pertanyaan Dasar
    • C# pertanyaan lanjutan
    • C# pertanyaan multithreading
    • Pertanyaan Pemrograman C#
    • Latihan Pemrograman C#
    • Contoh pengkodean C#
    • Tutorial C#

    Soal pilihan ganda

    • Seri Fibonacci di Java Menggunakan Rekursi dan Non Recursion
    • Seri Fibonacci di Java Menggunakan Loop – Clear Logic
    • Mengapa Menggunakan Pola Desain – Alasan Terbaik
    • Kisah Nyata: Bagaimana Semua Freshers CSE mendapatkan pekerjaan dalam 5 bulan
    • 50 Marka Java yang rumit – periksa apakah Anda bisa menjawab
    • C
    • C Contoh Pemrograman C
    • C# lanjutan
    • C# BASIC
    • C# multi-threading
    • Latihan Program C#
    • Pemrograman C#
    • Contoh Pemrograman C#
    • Tutorial C#
    • C ++ lanjutan
    • C ++ BASIC
    • Pemrograman C ++
    • Contoh Pemrograman C ++
    • Pengkodean
    • Jawa inti
    • Pola desain
    • Pola dan Prinsip Desain
    • DS & Algo
    • e-othor
    • Wawancara SDM
    • Wawancara Kisah Sukses
    • Coding Java
    • Koleksi Java
    • Contoh Koleksi Java
    • Latihan Java
    • Java Multithreading
    • Java Notes
    • Tutorial Java
    • Teka -teki matematika
    • MCQ-C++
    • MCQ-JAVA
    • MCQ-SQL
    • Algoritma dan struktur data MCQS
    • Jaringan Jenderal
    • Oracle PL SQL
    • Yang lain
    • Pekerjaan perangkat lunak
    • SQL
    • Database SQL
    • kompleksitas waktu
    • Diagram UML
    • Tidak dikategorikan

    Java: Mengapa satu set dapat berisi elemen duplikat

    Bergabunglah dengan komunitas Dzone dan dapatkan pengalaman anggota penuh.

    Dalam aplikasi latensi rendah, pembuatan objek yang tidak perlu sering dihindari dengan menggunakan kembali objek yang dapat berubah untuk mengurangi tekanan memori dan dengan demikian beban pada pengumpul sampah. Ini membuat aplikasi berjalan jauh lebih deterministik dan dengan lebih sedikit jitter. Namun, perawatan harus diambil tentang bagaimana objek yang digunakan kembali ini digunakan, atau hasil yang tidak terduga dapat memanifestasikan diri, misalnya dalam bentuk set yang berisi elemen duplikat seperti [b, b].

    HashCode dan Equals

    Jawa&rsquo;S built-in bytebuffer menyediakan akses langsung ke heap dan memori asli menggunakan pengalamatan 32-bit. Chronicle Bytes adalah penggantian drop-in open-source 64-bit yang memungkinkan segmen memori yang jauh lebih besar ditangani. Kedua jenis ini menyediakan metode hashcode () dan equals () yang tergantung pada konten byte objek&rsquo; segmen memori yang mendasari. Meskipun ini dapat berguna dalam banyak situasi, objek yang dapat berubah seperti ini tidak boleh digunakan di sebagian besar java&rsquo;S Tipe set bawaan dan bukan sebagai kunci di sebagian besar jenis peta bawaan.

    Catatan: Pada kenyataannya, hanya 31 dan 63 bit yang dapat digunakan sebagai alamat yang efektif (e.G. Menggunakan Parameter Int dan Long Offset)

    Kunci yang bisa berubah

    Di bawah ini, contoh kode kecil disajikan menggambarkan masalah dengan objek yang dapat diubah yang digunakan kembali. Kode ini menunjukkan penggunaan byte tetapi masalah yang sama ada untuk Bytebuffer.

    Set set = hashset baru <> (); Byte bytes = byte.dari"); mengatur.tambahkan (bytes); // menggunakan kembali byte.WritePosition (0); // Ini bermutasi objek yang sudah ada // di byte yang ditetapkan.tulis ("b"); // menambahkan objek byte yang sama lagi tetapi sekarang di bawah // set hashcode lain ().tambahkan (bytes); Sistem.keluar.println (&ldquo;set = &ldquo; + mengatur);

    Kode di atas pertama -tama akan menambahkan objek dengan &ldquo;A&rdquo; sebagai konten yang berarti bahwa set berisi [a]. Maka konten objek yang ada akan dimodifikasi &ldquo;B&rdquo;, yang memiliki efek samping mengubah set untuk berisi [b] tetapi akan meninggalkan nilai kode hash lama dan ember hash yang sesuai tidak berubah (secara efektif menjadi basi). Terakhir, objek yang dimodifikasi ditambahkan ke set lagi tetapi sekarang di bawah kode hash lain yang mengarah ke entri sebelumnya untuk objek yang sama akan tetap ada!

    Akibatnya, alih -alih yang mungkin diantisipasi [A, B], ini akan menghasilkan output berikut:

    Teks biasa

    set = [b, b]

    Bytebuffer dan bytes objek sebagai kunci di peta

    Saat menggunakan Java&rsquo;S BYTEBUFFER Objek atau objek byte sebagai kunci dalam peta atau sebagai elemen dalam set, satu solusi menggunakan identityhashmap atau koleksi.NewsFrommap (IdentityHashMap baru <> ()) untuk melindungi dari kekhasan objek yang dapat berubah yang dijelaskan di atas. Ini membuat hashing objek agnostik ke konten byte yang sebenarnya dan sebaliknya akan menggunakan sistem.IdentityHashCode () yang tidak pernah berubah selama kehidupan objek.

    Alternatif lain adalah menggunakan versi read-only dari objek (misalnya dengan memohon bytebuffer.asreadonlybuffer ()) dan menahan diri untuk tidak memegang referensi apa pun ke objek yang dapat berubah asli yang dapat memberikan pintu belakang untuk memodifikasi objek yang seharusnya dibaca saja&rsquo;konten s.

    Peta kronik dan antrian kronik

    Chronicle Map adalah perpustakaan open-source yang berfungsi sedikit berbeda dari implementasi peta java bawaan dengan cara objek diserialisasi dan dimasukkan ke dalam memori yang tidak tertinggal, membuka peta ultra-besar yang bisa lebih besar dari memori RAM yang dialokasikan ke JVM dan memungkinkan peta ini bertahan untuk memori yang dipetakan sehingga aplikasi dapat memulai kembali banyak hal yang fastor dan fastor yang dipetakan memori yang dipisahkan oleh pemadaman memori yang dapat diregangkan kembali sehingga pemasangan kembali yang dipisahkan oleh pemadaman yang dipisahkan oleh bahwa pemadaman yang dipisahkan oleh bahwa sehingga aplikasi yang faster dan fastor fastor yang dipisahkan oleh pemadam memori sehingga dapat memulai kembali yang fastor dan fastor yang fastor.

    Proses serialisasi memiliki keuntungan lain yang kurang dikenal dengan cara yang benar -benar memungkinkan objek yang dapat digunakan kembali yang dapat digunakan kembali sebagai kunci karena konten objek disalin dan secara efektif dibekukan setiap kali asosiasi baru dimasukkan ke dalam peta. Modifikasi selanjutnya dari objek yang dapat berubah karena itu tidak akan mempengaruhi konten serial beku yang memungkinkan penggunaan kembali objek yang tidak dibatasi.

    Antrian Chronicle Open-Source bekerja dengan cara yang sama dan dapat memberikan antrian yang dapat menahan terabyte data yang bertahan untuk penyimpanan sekunder dan, untuk alasan yang sama seperti Chronicle Map, memungkinkan penggunaan kembali objek elemen yang dapat berubah.

    Kesimpulan

    Berbahaya menggunakan objek yang dapat berubah, seperti byte dan bytebuffer di mana kode hashcode () tergantung pada konten objek, di beberapa peta dan menetapkan implementasi.

    IdentityHashMap melindungi terhadap korupsi peta dan set karena mutasi objek tetapi membuat struktur ini agnostik terhadap konten byte yang sebenarnya.

    Versi read-only dari objek segmen memori yang sebelumnya dimodifikasi mungkin memberikan solusi alternatif.

    Chronicle Map dan Chronicle Queue memungkinkan penggunaan objek yang dapat berubah secara tidak terbatas, membuka jalan menuju operasi latensi rendah deterministik.

    Do Set Recree Duplicate Nilai?

    Hashset adalah implementasi antarmuka set yang tidak memungkinkan nilai duplikat. Yang utama adalah, objek yang disimpan dalam hashset harus mengganti setara () untuk memeriksa kesetaraan, dan metode hashcode () tanpa nilai duplikat disimpan dalam set kami. HashMap adalah implementasi antarmuka peta, yang memetakan kunci nilai. Kunci duplikat tidak diperbolehkan di peta. Pada dasarnya, antarmuka peta memiliki dua kelas implementasi hashmap dan treemap perbedaan utama adalah treemap mempertahankan urutan objek tetapi hashmap tidak mau. Hashmap memungkinkan nilai nol dan kunci nol. Hashset dan hashmap tidak disinkronkan.

    Sekarang mari kita merumuskan perbedaan antara hashmap dan hashset seperti yang disediakan dengan cara tabel di bawah ini sebagai berikut:

    Dasar Hashset Hashmap
    Implement Atur antarmuka Antarmuka peta
    Duplikat TIDAK Ya, nilai duplikat diizinkan tetapi tidak ada kunci duplikat yang diizinkan
    Nilai boneka Ya TIDAK
    Objek yang diperlukan selama operasi tambah 1 2
    Menambahkan dan Menyimpan Mekanisme Objek hashmap Teknik hashing
    Kecepatan Itu relatif lebih lambat dari hashmap Ini relatif lebih cepat dari hashset karena teknik hashing telah digunakan di sini.
    Batal Memiliki nilai nol tunggal Kunci nol tunggal dan sejumlah nilai nol
    Metode penyisipan Hanya satu nilai yang diperlukan untuk proses penyisipan. Fungsi add () digunakan untuk penyisipan Dua nilai diperlukan untuk proses penyisipan. Fungsi put () digunakan untuk penyisipan.
    Penyimpanan data Data disimpan sebagai objek. Data disimpan sebagai pasangan nilai kunci.
    Kompleksitas Pada) O (1)

    Mari kita pahami pemahaman dengan mengintip ke dalam bekerja internal dengan bantuan program java bersih.

    Contoh 1: Hashset

Ο ρύθμιση δέχεται διπλές τιμές? Set accetta valori duplicati?

Related Posts

Berita

Apakah vinil terdengar bagus di Sonos

Berita

Apakah Epson 4700 cetak kartu stok

Berita

Apakah headphone kerusakan volume tinggi

banner
banner

PROMO

racavedigger.com
© racavedigger.com 2026