Java HashMap compute ()

Phương thức Java HashMap compute () tính toán một giá trị mới và liên kết nó với khóa được chỉ định trong bản đồ băm.

Cú pháp của compute()phương thức là:

 hashmap.compute(K key, BiFunction remappingFunction)

Ở đây, hashmap là một đối tượng của HashMaplớp.

compute () Tham số

Các compute()phương pháp có 2 thông số:

  • key - khóa mà giá trị đã tính được liên kết với
  • remappingFunction - hàm tính toán giá trị mới cho khóa được chỉ định

Lưu ý : RemappingFunction có thể có hai đối số. Do đó, được coi là BiFunction.

compute () Giá trị trả lại

  • trả về giá trị mới được liên kết với khóa
  • trả về nullnếu không có giá trị nào được liên kết với khóa

Lưu ý : Nếu kết quả remappingFunction null, thì ánh xạ cho khóa được chỉ định sẽ bị loại bỏ.

Ví dụ: HashMap compute () để chèn giá trị mới

 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); // recompute the value of Shoes with 10% discount int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100); System.out.println("Discounted Price of Shoes: " + newPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

Đầu ra

 HashMap: (Pant = 150, Bag = 300, Shoes = 200) Giá chiết khấu của giày: 180 Cập nhật HashMap: (Pant = 150, Bag = 300, Shoes = 180

Trong ví dụ trên, chúng tôi đã tạo một bản đồ băm có tên là giá. Chú ý biểu thức,

 prices.compute("Shoes", (key, value) -> value - value * 10/100)

Đây,

  • (key, value) -> value - value * 10/100 - Nó là một biểu thức lambda. Nó làm giảm giá trị cũ của Giày đi 10% và trả lại. Để tìm hiểu thêm về biểu thức lambda, hãy truy cập Biểu thức Lambda của Java.
  • price.compute () - Liên kết giá trị mới được trả về bởi biểu thức lambda với ánh xạ cho Giày.

Chúng tôi đã sử dụng biểu thức lambda làm hàm ánh xạ lại hai tham số.

Lưu ý : Theo tài liệu chính thức của Java, phương thức HashMap merge () đơn giản hơn compute()phương thức này.

Đọc đề xuất

  • HashMap computeIfAbsent () - tính toán giá trị nếu khóa được chỉ định không được ánh xạ tới bất kỳ giá trị nào
  • HashMap computeIfPresent () - tính toán giá trị nếu khóa được chỉ định đã được ánh xạ tới một giá trị

thú vị bài viết...