Podsumowanie — HashMap
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 51 z 66.
Wyzwanie
ŁatwyUtwórz metodę o nazwie ProcessDictionary, która przyjmuje jako parametry Dictionary<string, int> oraz tablicę operacji. Metoda powinna wykonywać następujące operacje:
- Jeśli operacja to "GET key", wypisz wartość dla tego klucza lub "Not found", jeśli klucz nie istnieje
- Jeśli operacja to "CHECK key", wypisz "Exists", jeśli klucz istnieje, w przeciwnym razie wypisz "Not found"
- Jeśli operacja to "MODIFY key value", wykonaj następujące czynności:
- Jeśli klucz istnieje i ma taką samą wartość jak podana, zwiększ jego wartość o 1
- Jeśli klucz istnieje, ale ma inną wartość, usuń klucz
- Jeśli klucz nie istnieje, dodaj go z podaną wartością
Zwróć zaktualizowany Dictionary po przetworzeniu wszystkich operacji.
Spróbuj swoich sił
using System;
using System.Collections.Generic;
class Program
{
public static Dictionary<string, int> ProcessDictionary(Dictionary<string, int> data, string[] operations)
{
// Wpisz tutaj swój kod
}
static void Main(string[] args)
{
// Zainicjalizuj słownik przykładowymi danymi
Dictionary<string, int> data = new Dictionary<string, int>
{
{ "Apple", 10 },
{ "Banana", 5 },
{ "Orange", 7 }
};
// Przykładowe operacje
string[] operations = new string[]
{
"GET Apple",
"CHECK Mango",
"MODIFY Banana 5",
"MODIFY Orange 8",
"MODIFY Mango 3"
};
Dictionary<string, int> result = ProcessDictionary(data, operations);
// Wyświetl wynik
Console.WriteLine("Updated Dictionary:");
foreach (var item in result)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
}
}Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo null9HashMap część 1
Czym jest HashMap?Deklarowanie HashMapSprawdzanie, czy klucz istniejeDostęp do wartościModyfikowanie słownikówPodsumowanie — HashMapPoćwicz samodzielnie: Kompilator C# online