İç İçe HashMap
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 19 / 59.
İç içe bir HashMap, değerleri kendileri HashMap olan bir HashMap'tir. Bu, karmaşık verileri hiyerarşik olarak organize etmenizi sağlar. Örneğin, kategorileri ("Elektronik" veya "Mobilya" gibi) ürünlerini ve fiyatlarını tutan iç HashMap'lere eşleyen bir dış HashMap'iniz olabilir.
İç içe bir HashMap oluşturun: kategoriler -> (ürünler -> fiyatlar)
HashMap<String, HashMap<String, Integer>> inventory = new HashMap<>();"Electronics" kategorisini boş bir iç HashMap ile ekleyin
inventory.put("Electronics", new HashMap<>());"Electronics" içine fiyatı 1200 olan "Laptop" öğesini ekleyin
inventory.get("Electronics").put("Laptop", 1200);Dış haritanın boş olup olmadığını kontrol edin ve boyutunu yazdırın
System.out.println(inventory.isEmpty());
// Output: false
System.out.println(inventory.size());
// Output: 1Bu örnekte, dış map bir anahtara ("Electronics") sahiptir ki bu anahtar, "Laptop" anahtarını ve 1200 değerini içeren iç bir HashMap'e eşlenir.
Görev
Kolay<b>printNestedInventory</b> adında bir metod oluşturun ki, inventory adlı iç içe geçmiş bir HashMap'i girdi olarak alsın. Bu envanterde:
- Anahtarlar kategorilerdir (ör., "Electronics", "Furniture").
- Değerler, anahtarları ürün adları ve değerleri fiyatları olan iç HashMap'lerdir.
Metodunuz envanteri aşağıdaki formatta yazdırmalıdır:
- Her kategori için
Category: <name>yazdırın - Eğer kategori ürünlere sahipse, her birini
Product: <name>, Price: <price>olarak yazdırın (2 boşluk girintisi ile) - Eğer kategori ürünlere sahip değilse,
(No products)yazdırın (2 boşluk girintisi ile)
Örnek çıktı:
Category: Electronics
Product: Laptop, Price: 1200
Product: Smartphone, Price: 800
Category: Furniture
Product: Chair, Price: 50
Product: Table, Price: 150
Category: EmptyCategory
(No products)Not: HashMap yineleme sırasını garanti etmez, bu yüzden çıktınızdaki kategoriler ve ürünlerin sırası yukarıdaki örnekten farklı olabilir — bu beklenen bir durumdur.
Not: Sağlanan diğer import'lara ek olarak java.util.Map import etmeniz gerekecek.
Kopya kağıdı
İç içe bir HashMap, değerleri kendileri HashMap olan bir HashMap'tir ve hiyerarşik veri organizasyonuna olanak tanır.
İç içe bir HashMap oluşturun:
HashMap<String, HashMap<String, Integer>> inventory = new HashMap<>();Boş bir iç HashMap ile bir kategori ekleyin:
inventory.put("Electronics", new HashMap<>());İç HashMap'e bir öğe ekleyin:
inventory.get("Electronics").put("Laptop", 1200);Dış haritanın boş olup olmadığını kontrol edin ve boyutunu alın:
System.out.println(inventory.isEmpty()); // false
System.out.println(inventory.size()); // 1Kendin dene
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void printNestedInventory(HashMap<String, HashMap<String, Integer>> inventory) {
// Dış HashMap'teki her kategoriyi yinele
// Her kategori için "Category: <name>" yazdır
// İç harita boşsa " (No products)" yazdır
// Aksi takdirde her ürünü yinele ve " Product: <name>, Price: <price>" yazdır
// Kodunuzu buraya yazın
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String inventoryString = scanner.nextLine();
// JSON dizesini iç içe HashMap'e dönüştür
Type inventoryType = new TypeToken<HashMap<String, HashMap<String, Integer>>>(){}.getType();
HashMap<String, HashMap<String, Integer>> inventory = new Gson().fromJson(inventoryString, inventoryType);
printNestedInventory(inventory);
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme