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