HashMap computeIfAbsent() trong java với ví dụ cụ thể

HashMap computeIfAbsent(key, Function) được sử dụng để update value bởi key được chỉ định nếu nó chưa có trong HashMap hoặc value nó là null.

Syntax

public V computeIfAbsent(K key,
                             Function<? super K, ? extends V> mappingFunction)

Parameter:

  • Key: key được chỉ định để update value.
  • mappingFunction: function trả về value mới được update.

Ví dụ 1: Update value của key đang có value null

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {

        // Creating an empty HashMap
        HashMap<Integer, String> hash_map = new HashMap<>();

        hash_map.put(1, "hga");
        hash_map.put(2, null);
        hash_map.put(3, "sho");

        hash_map.computeIfAbsent(2, k -> "update");
        System.out.println(hash_map);

    }
}

Output: {1=hga, 2=update, 3=sho}

Ví dụ 2: Tạo mới key – value khi key không tồn tại trogn HashMap

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {

        // Creating an empty HashMap
        HashMap<Integer, String> hash_map = new HashMap<>();

        hash_map.put(1, "hga");
        hash_map.put(2, "zzz");
        hash_map.put(3, "sho");

        hash_map.computeIfAbsent(4, k -> "update");
        System.out.println(hash_map);

    }
}

Output: {1=hga, 2=zzz, 3=sho, 4=update}

Ví dụ 3: Nếu key đã tồn tại trong HashMap và value của nó khác null thì value vẫn được giữ nguyên.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {

        // Creating an empty HashMap
        HashMap<Integer, String> hash_map = new HashMap<>();

        hash_map.put(1, "hga");
        hash_map.put(2, "zzz");
        hash_map.put(3, "sho");

        hash_map.computeIfAbsent(2, k -> "update");
        System.out.println(hash_map);

    }
}

Output: {1=hga, 2=zzz, 3=sho}

Note: Sử dụng computeIfAbsent() nếu bạn không chắc rằng nó có trong HashMap hoặc nếu có thì value của nó là null.

Kết bài

Mọi người cố gắng làm hết để ôn lại các kiến thức trong lập trình hướng đối tượng nghen.

Nếu làm được hết các bài này thì cũng đừng có mừng vội, vì đây chỉ là những thứ rất rất căn bản. Nhưng hãy thoải moái vì mình đã hoàn thành những bài tập này, chuẩn bị cho những thứ ghê ghớm hơn ở đằng sau.

Mình ngồi giải những bài tập này cũng đuối quá. Nếu có gì không hiểu hoặc không biết làm, hoặc tìm thấy bug thì mail cho mình nhé. Email ở dưới cuối màn mình =). Thanks!

Các bài viết liên quan

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
2
0
Would love your thoughts, please comment.x
()
x