Kaedah Java HashMap computeIfAbsent () mengira nilai baru dan mengaitkannya dengan kunci yang ditentukan jika kunci tidak dikaitkan dengan nilai dalam hashmap.
Sintaks computeIfAbsent()
kaedahnya adalah:
hashmap.computeIfAbsent(K key, Function remappingFunction)
Di sini, hashmap adalah objek HashMap
kelas.
computeIfAbsent () Parameter
The computeIfAbsent()
Cara mengambil masa 2 parameter:
- key - key dengan mana nilai dikira akan dikaitkan
- remappingFunction - fungsi yang mengira nilai baru untuk kekunci yang ditentukan
Catatan : Fungsi pemetaan semula tidak boleh mengambil dua argumen.
computeIfAbsent () Nilai Pulangan
- mengembalikan nilai baru atau lama yang berkaitan dengan kunci yang ditentukan
- kembali
null
jika tiada nilai yang dikaitkan dengan kunci
Catatan : Sekiranya hasil null
pemetaan semula fungsi, maka pemetaan untuk kunci yang ditentukan dikeluarkan.
Contoh 1: Java HashMap computeIfAbsent ()
import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // compute the value of Shirt int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280); System.out.println("Price of Shirt: " + shirtPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Pengeluaran
HashMap: (Seluar = 150, Beg = 300, Kasut = 200) Harga Baju: 280 Dikemas kini HashMap: (Seluar = 150, Baju = 280, Beg = 300, Kasut = 200)
Dalam contoh di atas, kami telah membuat hashmap bernama harga. Perhatikan ungkapan,
prices.computeIfAbsent("Shirt", key -> 280)
Di sini,
- kunci -> 280 adalah ungkapan lambda. Ia mengembalikan nilai 280. Untuk mengetahui lebih lanjut mengenai ungkapan lambda, lawati Java Lambda Expressions.
- Rates.computeIfAbsent () mengaitkan nilai baru yang dikembalikan oleh lambda ekspresi ke pemetaan untuk Baju. Ini hanya mungkin kerana Baju belum dipetakan ke nilai dalam hashmap.
Contoh 2: computeIfAbsent () jika kunci sudah ada
import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 180); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // mapping for Shoes is already present // new value for Shoes is not computed int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280); System.out.println("Price of Shoes: " + shoePrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )
Pengeluaran
HashMap: (Seluar = 150, Beg = 300, Kasut = 180) Harga Kasut: 180 Dikemas kini HashMap: (Seluar = 150, Beg = 300, Kasut = 180)
Dalam contoh di atas, pemetaan untuk Kasut sudah ada dalam hashmap. Oleh itu, computeIfAbsent()
kaedah ini tidak menghitung nilai baru untuk Kasut.
Bacaan yang Disyorkan
- HashMap compute () - mengira nilai untuk kekunci yang ditentukan
- HashMap computeIfPresent () - mengira nilai jika kunci yang ditentukan sudah dipetakan ke nilai
- Penggabungan Java HashMap () - melakukan tugas yang sama seperti
compute()