Matematika, Union HashSet
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 62 dari 66.
Operasi Union menggabungkan dua set untuk membuat set baru yang berisi semua elemen dari kedua set tanpa duplikat.
Buat dua HashSet:
HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5 };Gunakan method Union untuk menggabungkan set:
HashSet<int> unionSet = new HashSet<int>(set1);
unionSet.UnionWith(set2);Setelah menjalankan kode di atas, unionSet berisi:
[1, 2, 3, 4, 5]Perhatikan bahwa elemen 3 hanya muncul sekali dalam hasil, karena HashSet tidak mengizinkan duplikat.
Tantangan
MudahBuat method bernama UnionSets yang menerima dua HashSet berisi bilangan bulat sebagai parameter dan mengembalikan HashSet baru yang berisi gabungan kedua set.
Pembacaan input dan pencetakan output sudah ditangani untukmu: fokuslah pada implementasi isi method UnionSets.
Coba sendiri
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
class Program
{
public static HashSet<int> UnionSets(HashSet<int> set1, HashSet<int> set2)
{
// Tulis kodemu di sini
return null;
}
static void Main(string[] args)
{
// Baca baris pertama untuk memeriksa format set pertama
string line1 = Console.ReadLine();
HashSet<int> set1 = new HashSet<int>();
// Periksa apakah set pertama berformat array JSON
if (line1 != null && line1.StartsWith("[") && line1.EndsWith("]"))
{
try
{
// Ambil isi di antara tanda kurung siku
string arrayContent = line1.Substring(1, line1.Length - 2);
// Coba uraikan isi array JSON
string[] values = Regex.Split(arrayContent, @",\s*");
foreach (string value in values)
{
// Hapus tanda kutip jika ada
string cleanValue = value.Trim();
if (cleanValue.StartsWith("\"") && cleanValue.EndsWith("\""))
{
cleanValue = cleanValue.Substring(1, cleanValue.Length - 2);
}
// Uraikan sebagai bilangan bulat dan tambahkan ke set
if (int.TryParse(cleanValue, out int num))
{
set1.Add(num);
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing first set: {ex.Message}");
return;
}
}
else
{
// Proses input set pertama yang dipisahkan spasi
string[] input1 = line1.Split(' ');
foreach (string num in input1)
{
if (int.TryParse(num, out int parsedNum))
{
set1.Add(parsedNum);
}
}
}
// Baca baris kedua untuk memeriksa format set kedua
string line2 = Console.ReadLine();
HashSet<int> set2 = new HashSet<int>();
// Periksa apakah set kedua berformat array JSON
if (line2 != null && line2.StartsWith("[") && line2.EndsWith("]"))
{
try
{
// Ambil isi di antara tanda kurung siku
string arrayContent = line2.Substring(1, line2.Length - 2);
// Coba uraikan isi array JSON
string[] values = Regex.Split(arrayContent, @",\s*");
foreach (string value in values)
{
// Hapus tanda kutip jika ada
string cleanValue = value.Trim();
if (cleanValue.StartsWith("\"") && cleanValue.EndsWith("\""))
{
cleanValue = cleanValue.Substring(1, cleanValue.Length - 2);
}
// Uraikan sebagai bilangan bulat dan tambahkan ke set
if (int.TryParse(cleanValue, out int num))
{
set2.Add(num);
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing second set: {ex.Message}");
return;
}
}
else
{
// Proses input set kedua yang dipisahkan spasi
string[] input2 = line2.Split(' ');
foreach (string num in input2)
{
if (int.TryParse(num, out int parsedNum))
{
set2.Add(parsedNum);
}
}
}
// Dapatkan gabungan set dan cetak hasilnya
HashSet<int> unionSet = UnionSets(set1, set2);
Console.WriteLine(string.Join(" ", unionSet.OrderBy(x => x)));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan Null9HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapPeriksa Apakah Kunci AdaMengakses NilaiMengubah dictionaryRingkasan HashMap12HashSet Bagian 2
Matematika, Union HashSetMatematika, Irisan HashSetMatematika, Selisih SetMatematika, Selisih SimetrisMelakukan Iterasi pada SetLatihan sendiri: Compiler C# online