Öğren · Dene · Üret
Java · Haritalar: bilgiyi isimle saklamak — videolu atölye
Adım adım Türkçe görsel rehber. Her bölümden sonra duraklat ve kendi ortamında dene.
4:35 dk · Sessiz görsel anlatım · Duraklatıp kodu veya adımı kendin dene.
Bölümler
Videoyu metin olarak oku
Haritalar: bilgiyi isimle saklamak
Bir kaydı anahtar-değer ilişkisiyle temsil edip eksik alanı ele almak.
Kavramı kur
Bir öğrencinin adı ve puanı aynı türden sıra öğeleri değildir; farklı anlamdaki alanlardır. Anahtar-değer yapısı, bu bilgilere konum yerine bir adla erişmeyi sağlar. Böylece 0 konumunun isim olduğunu hatırlamak yerine ad anahtarını okursun. Verinin hangi soruya cevap verdiği yapıda görünür hâle gelir.
Neden böyle çalışıyor?
Her alanın var olacağını varsaymak gerçek veride hataya neden olur. Bir form gönderiminde veya API yanıtında şehir alanı eksik olabilir. Bu durumda varsayılan değer kullanmak, kayıt atlamak veya kullanıcıya düzeltme istemek farklı kararlardır. Önce eksik bilgiye uygulamanın nasıl davranacağını belirle.
Çalışma sırası
Aynı anahtara ikinci kez değer yazmak çoğu yapıda yeni bir bağımsız kayıt oluşturmaz; o anahtarın değerini değiştirir. Birden çok öğrenci saklayacaksan tek öğrenci sözlüğüne isim eklemek yerine kayıtları bir koleksiyonda toplaman gerekebilir. Yapıyı seçmeden önce “bir kayıt mı, birden çok kayıt mı?” sorusunu sor.
İkinci örnek · 1
ad ve puan farklı anlamdaki alanların anahtarlarıdır. Kodun tamamı yazılı derste bulunur.
public class Main {
public static void main(String[] args) {
java.util.Map<String, String> ogrenci = new java.util.HashMap<>();
ogrenci.put("ad", "Elif");
ogrenci.put("puan", "80");
System.out.println(ogrenci.get("ad"));
System.out.println(ogrenci.get("puan"));
System.out.println(ogrenci.getOrDefault("sehir", "Belirtilmedi"));
}
}Beklenen sonucu oku
sehir olmadığı için açık bir yedek değer seçilir.
Beklenen: Elif 80 Belirtilmedi
Bir değeri sen değiştir
Öğrencinin adını ve puanını değiştir. sehir alanını ekle; yedek yerine gerçek değerin döndüğünü kontrol et.
Hata nereden gelir?
Anahtarı büyük/küçük harf farkıyla yazmak aynı alanı bulmayabilir; adlandırmayı tutarlı yap.
Kendi çözümünü kur
Eksik alanın ekranda nasıl anlatılacağını düşün; sessizce yanlış bir şehir uydurmak yerine açık bir eksik bilgi mesajı yaz. Önce bütün anahtarları yaz. Sonra bir anahtarı kaldırıp eksik bilgi yolunu dene.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
public class Main {
public static void main(String[] args) {
java.util.Map<String, String> ogrenci = new java.util.HashMap<>();
ogrenci.put("ad", "Deniz");
ogrenci.put("puan", "95");
System.out.println(ogrenci.get("ad"));
System.out.println(ogrenci.get("puan"));
System.out.println(ogrenci.getOrDefault("sehir", "Belirtilmedi"));
}
}Kendini kontrol et
İki farklı öğrenci için aynı ad anahtarını tek sözlükte tekrar tekrar yazmak neden yetmez? Yanıt: Aynı anahtarın değeri güncellenir. Birden çok öğrenci için kayıtları ayrı tutan bir koleksiyon gerekir.
Beklenen: Deniz 95 Belirtilmedi
Bu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.