Rangkuman: Operasi HashMap
Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 21 dari 59.
Tantangan
MudahBuat method bernama processHashMap yang menerima satu argumen:
- Sebuah HashMap bernama
productsdengan:- Key yang mewakili nama produk (
String). - Value yang mewakili harga (
Double).
- Key yang mewakili nama produk (
Operasi yang Harus Dilakukan
- Temukan produk dengan harga tertinggi.
- Jika beberapa produk memiliki harga tertinggi yang sama, kembalikan salah satunya.
- Jika HashMap kosong, kembalikan string kosong (
"").
- Filter produk yang harganya lebih dari
50.00dan simpan dalam HashMap baru. - Hitung harga rata-rata semua produk.
- Jika HashMap kosong, nilai rata-ratanya harus
0.0.
- Jika HashMap kosong, nilai rata-ratanya harus
Format Nilai Kembalian
Method harus mengembalikan HashMap baru dengan pasangan key-value berikut:
| Key | Value |
|---|---|
"Highest" | Nama produk dengan harga tertinggi (String). |
"Filtered" | Sebuah HashMap (HashMap<String, Double>) yang hanya berisi produk dengan harga lebih dari 50.00. |
"Average" | Harga rata-rata semua produk (Double). |
Coba sendiri
import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.Map;
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) {
// Tulis kodemu di sini
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String productsString = scanner.nextLine();
// Ubah string JSON menjadi HashMap
Type mapType = new TypeToken<HashMap<String, Double>>(){}.getType();
HashMap<String, Double> products = new Gson().fromJson(productsString, mapType);
HashMap<String, Object> result = processHashMap(products);
// Urutkan map Filtered agar output tetap konsisten
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);
}
}Semua pelajaran di Logika & Alur
1Array Multidimensi
Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRangkuman: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan Lebih JauhPola Umum Array 2DRangkuman: Semua tentang Array2HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapMengakses nilaiPeriksa apakah key adaMengubah dictionaryRingkasan: HashMap3HashMap Bagian 2
Method HashMapIterasi dengan keySet()Iterasi dengan entrySet()HashMap BersarangRangkuman: Kelola GudangRangkuman: Operasi HashMap6Alur Kontrol Lanjutan
Pernyataan LabelEkspresi SwitchPencocokan PolaKlausa PenjagaRingkasan Alur Kontrol9Proyek: Penghitung Kata Unik
Input dan Penyimpanan TeksPemrosesan KataLatihan sendiri: Compiler Java online