Java putIfAbsent()

Java putIfAbsent() – Phương thức của Map Interface

Trong Java, phương thức putIfAbsent() là một phần của interface Map và được sử dụng để thêm một cặp key-value vào Map chỉ khi key đó chưa tồn tại trong Map. Nếu key đã tồn tại, phương thức sẽ không thực hiện thêm và trả về giá trị hiện tại của key đó.

Định nghĩa

Cú pháp của phương thức putIfAbsent() như sau:

V putIfAbsent(K key, V value);

Trong đó:

  • K: Kiểu của key trong Map.
  • V: Kiểu của value trong Map.
  • key: Key cần kiểm tra và thêm vào Map.
  • value: Value sẽ được thêm vào Map nếu key chưa tồn tại.

Cú pháp

Phương thức putIfAbsent() sẽ trả về:

  • Giá trị cũ của key nếu nó đã tồn tại trong Map.
  • null nếu key chưa có trong Map và value được thêm thành công.

Ví dụ sử dụng

Dưới đây là một ví dụ minh họa cách sử dụng phương thức putIfAbsent():

import java.util.HashMap;
import java.util.Map;

public class Example {
    public static void main(String[] args) {
        Map map = new HashMap<>();

        // Thêm một cặp key-value
        map.put("Apple", 1);
        System.out.println("Giá trị của Apple: " + map.get("Apple")); // In ra 1

        // Sử dụng putIfAbsent để thêm cặp key-value
        Integer oldValue = map.putIfAbsent("Apple", 2);
        System.out.println("Giá trị cũ của Apple: " + oldValue); // In ra 1
        System.out.println("Giá trị của Apple sau khi putIfAbsent: " + map.get("Apple")); // Vẫn là 1

        // Thêm một key mới
        Integer newValue = map.putIfAbsent("Banana", 2);
        System.out.println("Banana đã được thêm với giá trị: " + newValue); // In ra null
        System.out.println("Giá trị của Banana: " + map.get("Banana")); // In ra 2
    }
}

Trong ví dụ trên:

  • Khi chúng ta cố gắng thêm giá trị mới cho key "Apple", phương thức putIfAbsent() trả về giá trị cũ (1) và không thay đổi giá trị trong Map.
  • Khi chúng ta thêm key "Banana", phương thức thêm thành công và trả về null vì key "Banana" chưa tồn tại.

Kết luận

Phương thức putIfAbsent() là một công cụ hữu ích để quản lý dữ liệu trong Java Collections Framework, giúp tăng cường tính chính xác khi thao tác với các Map. Sử dụng phương thức này, bạn có thể dễ dàng đảm bảo rằng chỉ những key không tồn tại mới được thêm vào Map, giúp bạn giảm thiểu các lỗi không mong muốn trong quá trình xây dựng ứng dụng.