Phương thức getOrDefault cho HashMaps trong Java là gì?
Tiêu đề cho phương thức getOrDefault() là gì?
Tiêu đề thông thường cho phương thức getOrDefault được định nghĩa như sau.
hashMap.getOrDefault(Object key, Object defaultValue)
Thông số đã qua
Tiêu đề phương thức có hai đối số. Chúng được liệt kê cùng với các loại dữ liệu của chúng bên dưới.- Cái đầu tiên là khóa được chỉ định của loại Đối tượng.
- Loại Đối tượng khác là tham số là defaultValue được truyền cho khóa đối tượng làm đối số phương thức.
Hoạt động của phương thức getOrDefault()
Bạn có thể hiểu cách thức hoạt động của phương thức getOrDefault() theo hai bước đơn giản sau đây.- getOrDefault (key, defaultValue) được thiết kế để lấy giá trị tương ứng với khóa trong HashMap .
- Nếu có một giá trị được liên kết với khóa thì giá trị đó sẽ được trả về. Mặt khác, nếu giá trị không có sẵn, thì giá trị defaultValue được truyền dưới dạng tham số cho phương thức này sẽ được trả về.
ví dụ 1
import java.util.HashMap;
public class Driver1{
public static void main(String[] args) {
// Declare a HashMap
HashMap weekDays = new HashMap<>();
// Add data to the HashMap
weekDays.put("Monday", "Working Day");
weekDays.put("Tuesday", "Working Day");
weekDays.put("Wednesday", "Working Day");
weekDays.put("Thursday", "Working Day");
weekDays.put("Friday", "Working Day");
weekDays.put("Saturday", "Off Day");
weekDays.put("Sunday", "Off Day");
// Print the data in the HashMap
System.out.println("Working Schedule : " + weekDays + "\n");
// Check if the given key is present in the Map
// IF yes, its value will be returned
String sunday = weekDays.getOrDefault("Sunday", "No Announcements Yet.");
System.out.println("Is Sunday a working day? " + sunday);
// IF not, the default value passed will be returned
String christmas = weekDays.getOrDefault("Christmas", "National Holiday");
System.out.println("Is Christmas a working day? " + christmas);
// Key not present in the HashMap
// Default Value returned
String easter = weekDays.getOrDefault("Easter", "National Holiday");
System.out.println("Is Easter a working day? " + easter);
}
}
đầu ra
Lịch làm việc : {Thứ Hai=Ngày làm việc, Thứ Năm=Ngày làm việc, Thứ Sáu=Ngày làm việc, Chủ Nhật=Ngày nghỉ, Thứ Tư=Ngày làm việc, Thứ Ba=Ngày làm việc, Thứ Bảy=Ngày nghỉ}
Chủ Nhật có phải là ngày làm việc không? Ngày nghỉ
Lễ Giáng sinh có phải là ngày làm việc không? Lễ Quốc khánh
Lễ Phục Sinh có phải là ngày làm việc không? Lễ Quốc khánh
Tại sao lại sử dụng phương thức getOrDefault() chứ không phải get()?
Phương thức get() đơn giản trong Java được sử dụng để lấy giá trị của khóa được yêu cầu trong HashMap . Nếu khóa được tìm thấy, giá trị được trả về. Trong trường hợp không tìm thấy khóa, “null” được trả về. Phương thức getOrDefault () được ưa thích hơn phương thức get đơn giản khi giá trị mặc định được mong đợi trả về. Đây là một ví dụ đơn giản cho sự hiểu biết của bạn.ví dụ 2
import java.util.HashMap;
public class Driver2{
public static void main(String[] args) {
HashMap<Object, Boolean> holidays = new HashMap<>();
// Add data to the HashMap
holidays.put("Saturday", true);
holidays.put("Sunday", true);
// Print the data in the HashMap
System.out.println("Holidays: " + holidays + "\n");
// Key not present, default value returned
Object christmas = holidays.getOrDefault("Christmas", true);
System.out.println("Is Christmas a holiday? " + christmas);
// Key not present, null returned
christmas = holidays.get("Christmas");
System.out.println("Is Christmas a holiday? " + christmas);
}
}
đầu ra
Ngày lễ: {Chủ nhật=true, Thứ bảy=true}
Lễ Giáng Sinh có phải là một ngày lễ không? ĐÚNG VẬY
Lễ Giáng Sinh có phải là một ngày lễ không? vô giá trị
Bạn có thể thấy sự khác biệt giữa phương thức getOrDefault và phương thức get . Như được in trong đầu ra, phương thức đầu tiên trả về giá trị mặc định nếu không tìm thấy khóa trong khi phương thức sau trả về giá trị rỗng.
GO TO FULL VERSION