0Pricing
Zig Academy · Pelajaran

Menggunakan HashMap dan AutoHashMap

Penyimpanan key-value dari std.

Menggunakan HashMap dan AutoHashMap adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why a Hash Map

A hash map stores key-value pairs and looks them up in near-constant time. Zig ships one in the standard library, so you rarely write your own. 🗺️

Reach for AutoHashMap First

std.AutoHashMap picks hashing and equality automatically for common key types like integers and enums. Give it a key type and a value type.

const Map = std.AutoHashMap(u32, []const u8);

It Needs an Allocator

Like other growable containers, the map borrows memory. Pass an allocator to init and the map grows as you add entries.

var map = std.AutoHashMap(u32, u32).init(allocator);
defer map.deinit();

Insert with put

put adds or overwrites a key. It can allocate while growing, so it returns an error union and you use try.

try map.put(1, 100);

Look Up with get

get returns an optional value: the stored value if the key exists, or null otherwise. No crash on a missing key.

const v = map.get(1); // ?u32

Unwrap the Result

Because get is optional, handle the absent case with orelse or an if capture before using the value.

const v = map.get(1) orelse 0;

Check and Remove

Ask contains for a yes-or-no answer, and call remove to delete a key. Remove returns true if the key was present.

if (map.contains(1)) _ = map.remove(1);

When Auto Cannot Decide

For keys like slices, automatic hashing will not compile. Then you use the lower-level std.HashMap and supply a context.

StringHashMap for Text Keys

String keys are common, so std offers a ready helper: std.StringHashMap already knows how to hash a []const u8.

var m = std.StringHashMap(i32).init(allocator);
try m.put("score", 42);

Iterate Over Entries

Get an iterator and loop to visit every pair. Each entry exposes a key pointer and a value pointer.

var it = map.iterator();
while (it.next()) |e| {
    std.debug.print("{d}={d}\n", .{ e.key_ptr.*, e.value_ptr.* });
}

Always deinit the Map

The map owns its internal buffers, so call deinit when you are done. The testing allocator flags it if you forget.

defer map.deinit();

Quick Check

You need a hash map whose keys are integers. Which standard type is the simplest fit?

Recap

Use AutoHashMap for simple keys and StringHashMap for text. Init with an allocator, put and get pairs, iterate, then deinit. 🎯

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggunakan HashMap dan AutoHashMap” gratis?

Ya — teks lengkap “Menggunakan HashMap dan AutoHashMap” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menggunakan HashMap dan AutoHashMap”?

Penyimpanan key-value dari std. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Zig Academy?

Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menggunakan HashMap dan AutoHashMap” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?

Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Stack Generik dari Nol
  2. Linked List Tunggal
  3. Menggunakan HashMap dan AutoHashMap
  4. Pembuatan Profil dan Pertukaran Keamanan
← Kembali ke Zig Academy