Menu
Coddy logo textTech

Özet - HashMap İşlemleri

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 21 / 59.

challenge icon

Görev

Kolay

<strong>processHashMap</strong> adında bir metot oluşturun ki bir argüman alsın:

  1. products adında bir HashMap şu şekilde:
    • Anahtarlar ürün adlarını temsil eder (String).
    • Değerler fiyatları temsil eder (Double).

Gerçekleştirilecek İşlemler

  1. En yüksek fiyata sahip ürünü bulun.
    • Eğer birden fazla ürün aynı en yüksek fiyata sahipse, bunlardan herhangi birini döndürün.
    • HashMap boşsa, boş bir string döndürün ("").
  2. Fiyatı <strong>50.00</strong>'den büyük olan ürünleri filtreleyin ve bunları yeni bir HashMap'e kaydedin.
  3. Tüm ürünlerin ortalama fiyatını hesaplayın.
    • HashMap boşsa, ortalama 0.0 olmalıdır.

Dönüş Formatı

Metot, aşağıdaki anahtar-değer çiftlerini içeren yeni bir HashMap döndürmelidir:

AnahtarDeğer
"Highest"En yüksek fiyata sahip ürünün adı (String).
"Filtered"Fiyatları 50.00'den büyük olan ürünleri içeren bir HashMap (HashMap<String, Double>).
"Average"Tüm ürünlerin ortalama fiyatı (Double).

Kendin dene

import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.stream.Collectors;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static HashMap<String, Object> processHashMap(HashMap<String, Double> products) {
        // Kodunuzu buraya yazın
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String productsString = scanner.nextLine();

        // JSON dizesini HashMap'e dönüştür
        Type mapType = new TypeToken<HashMap<String, Double>>(){}.getType();
        HashMap<String, Double> products = new Gson().fromJson(productsString, mapType);

        HashMap<String, Object> result = processHashMap(products);

        // Tutarlı çıktı sağlamak için Filtered haritayı sırala
        Map<String, Double> filteredMap = (Map<String, Double>) result.get("Filtered");
        if (filteredMap != null && !filteredMap.isEmpty()) {
            Map<String, Double> sortedFiltered = filteredMap.entrySet().stream()
                .sorted(Map.Entry.comparingByKey())
                .collect(Collectors.toMap(
                    Map.Entry::getKey,
                    Map.Entry::getValue,
                    (a, b) -> b,
                    LinkedHashMap::new
                ));
            result.put("Filtered", sortedFiltered);
        }
        
        System.out.println(result);
    }
}

Mantık & Akış bölümündeki tüm dersler