Method HashMap
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 52 dari 66.
method HashMap menyediakan cara yang ampuh untuk mengolah data dictionary-mu. Mari kita bahas beberapa method yang umum:
Periksa apakah sebuah kunci ada di dictionary:
Dictionary<string, int> inventory = new Dictionary<string, int>();
inventory.Add("apples", 25);
bool hasApples = inventory.ContainsKey("apples");
// hasApples akan bernilai trueAmbil semua kunci dari dictionary:
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Alice", 95);
scores.Add("Bob", 87);
// Ambil semua kunci
Dictionary<string, int>.KeyCollection keys = scores.Keys;
foreach (string name in keys)
{
Console.WriteLine(name);
}Dapatkan semua nilai dari dictionary:
// Ambil semua nilai
Dictionary<string, int>.ValueCollection values = scores.Values;
foreach (int score in values)
{
Console.WriteLine(score);
}Hapus item dari dictionary:
scores.Remove("Bob");
// Sekarang dictionary hanya berisi skor AliceRemove() mengembalikan true jika kuncinya ada dan berhasil dihapus, serta false jika tidak ada. Menghapus kunci yang tidak ada bukanlah error.
Hapus semua item:
scores.Clear();
// dictionary sekarang kosongDapatkan jumlah item dalam dictionary menggunakan .Count:
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Alice", 95);
scores.Add("Bob", 87);
int total = scores.Count;
Console.WriteLine(total);
// output: 2Tantangan
SedangBuat method bernama ProcessDictionary yang menerima Dictionary<string, int> sebagai argumen dan melakukan operasi berikut:
- Cetak
Keys:, lalu semua kunci, satu per baris - Cetak
Values:, lalu semua nilai, satu per baris - Periksa apakah dictionary berisi kunci
"total"dan cetakContains 'total': TrueatauContains 'total': False - Hapus kunci
"temp"jika ada - Cetak
Count:, lalu jumlah item dalam dictionary setelah operasi ini dilakukan. Gunakan property.Countdari dictionary
Coba sendiri
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
class Program
{
static void ProcessDictionary(Dictionary<string, int> dict)
{
// Tulis kodemu di sini
}
// Abaikan kode utama, kode ini mengubah string menjadi HashMap
static void Main(string[] args)
{
Dictionary<string, int> inputDict = new Dictionary<string, int>();
// Baca baris pertama untuk memeriksa apakah formatnya JSON
string firstLine = Console.ReadLine();
// Periksa apakah input berformat JSON
if (firstLine != null && firstLine.StartsWith("{") && firstLine.EndsWith("}"))
{
try
{
// Proses input JSON
string jsonContent = firstLine.Substring(1, firstLine.Length - 2);
// Pisahkan berdasarkan koma yang tidak berada di dalam tanda kutip
string pattern = @",(?=(?:[^""]*""[^""]*"")*[^""]*$)";
string[] entries = Regex.Split(jsonContent, pattern);
foreach (string entry in entries)
{
// Ambil key dan nilai menggunakan regex
Match match = Regex.Match(entry, @"""([^""]+)""\s*:\s*(\d+)");
if (match.Success)
{
string keyMatch = match.Groups[1].Value;
int valueMatch = int.Parse(match.Groups[2].Value);
inputDict.Add(keyMatch, valueMatch);
}
}
ProcessDictionary(inputDict);
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing input: {ex.Message}");
}
}
else
{
try
{
// Process traditional input format
int n = int.Parse(firstLine);
for (int i = 0; i < n; i++)
{
string[] pair = Console.ReadLine().Split(':');
string key = pair[0];
int value = int.Parse(pair[1]);
inputDict.Add(key, value);
}
ProcessDictionary(inputDict);
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing input: {ex.Message}");
}
}
}
}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 NullLatihan sendiri: Compiler C# online