Java: HashMap

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Lớp HashMap thực thi interface Map và kế thừa tất cả các phương thức của nó. Một thể hiện của HashMap có hai tham số: dung lượng ban đầu và hệ số tải. Dung lượng ban đầu xác định số lượng đối tượng có thể được thêm vào HashMap tại thời điểm tạo bảng băm. Hệ số tải xác định mức độ đầy đủ của bảng băm trước khi dung lượng của nó được tự động tăng lên.

HashMap rất giống với Hashtable với hai điểm khác biệt chính:

  • HashMap không được đồng bộ hóa làm cho việc truy cập nhanh hơn.
  • HashMap cho phép các giá trị rỗng được sử dụng làm value hoặc key, những giá trị này không được phép trong quá trình triển khai Hashtable. Lớp HashMap không đảm bảo thứ tự của map và nó không đảm bảo rằng thứ tự sẽ không đổi theo thời gian.

Các hàm tạo của lớp này như sau:

HashMap(): Hàm tạo xây dựng một HashMap trống với dung lượng ban đầu mặc định và hệ số tải lần lượt là 17 và 0,75.

HashMap(int initialCapacity): Hàm tạo xây dựng một HashMap trống với dung lượng ban đầu được chỉ định và hệ số tải mặc định là 0,75.

HashMap(int initialCapacity, float loadFactor): Hàm tạo xây dựng một HashMap trống với dung lượng và hệ số tải ban đầu được chỉ định.

HashMap(Map <? extends K,? extends V> m): Hàm tạo xây dựng một HashMap tương tự như map được chỉ định m.

Ví dụ sau hiển thị việc sử dụng lớp HashMap.

class EmployeeData {
  public EmployeeData(String nm) {
    name = nm;
    salary = 5600;
  }

  public String toString() {
    return "[name=" + name + ", salary=" + salary + "]";
  }
  ...
}

public class MapTest {
  public static void main(String[] args) {
    Map<String, EmployeeData> staffObj = new HashMap<String, EmployeeData>();
    staffObj.put("101", new EmployeeData("Anna John"));
    staffObj.put("102", new EmployeeData("Harry Hacker"));
    staffObj.put("103", new EmployeeData("Joby Martin"));
    System.out.println(staffObj);
    staffObj.remove("103");
    staffObj.put("106", new EmployeeData("Joby Martin"));
    System.out.println(staffObj.get("106"));
    System.out.println(staffObj);
    ...
  }
}

Trong ví dụ trên, một lớp EmployeeData và MapTest được tạo. Trong lớp MapTest một thể hiện của lớp HashMap được tạo. Trong đối tượng HashMap, dữ liệu của lớp EmployeeData được thêm, bớt và truy xuất.

» Tiếp: Hashtable
« Trước: Map
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!