CodeGym/Blog Java/Ngẫu nhiên/Phương thức HashMap getOrDefault trong Java

Phương thức HashMap getOrDefault trong Java

Xuất bản trong nhóm

Phương thức getOrDefault cho HashMaps trong Java là gì?

“ Phương thức getOrDefault trả về giá trị được ánh xạ tới khóa đã chỉ định trong HashMap . Nếu không có khóa đó thì giá trị mặc định sẽ được trả về.”
Lớp java.util.HashMap đi kèm với phương thức getOrDefault để cung cấp thêm đặc quyền chuyển giá trị mặc định. Giá trị mặc định có thể được sử dụng cho các mục đích khác nhau trong các tình huống khác nhau. Cách sử dụng và so sánh với phương thức get đơn giản sẽ được giải thích ở phần sau của bài viết.

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.
  1. Cái đầu tiên là khóa được chỉ định của loại Đối tượng.
  2. 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.
  1. getOrDefault (key, defaultValue) được thiết kế để lấy giá trị tương ứng với khóa trong HashMap .
  2. 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.

Phần kết luận

Đến cuối bài đăng này, bạn phải làm quen với phương thức getOrDefault() của HashMap . Bạn được khuyên nên học bằng cách thực hành. Vui lòng kiểm tra lại bài đăng này nếu bạn gặp khó khăn trên đường đi. Cho đến lúc đó, hãy tiếp tục luyện tập và tiếp tục phát triển!
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào