hashmap-java

HashMap trong Java là một trong những lớp Collection phổ biến nhất trong Java. HashMap là triển khai dựa trên bảng Hash. HashMap trong Java mở rộng lớp AbstractMap để cài đặt interface Map.

HashMap trong Java

Một số điểm quan trọng về HashMap trong Java là;

  1. HashMap cho phép khóa null và giá trị null.
  2. HashMap không phải là một bộ sưu tập có thứ tự. Bạn có thể lặp lại các mục nhập HashMap thông qua các khóa được đặt nhưng chúng không được đảm bảo theo thứ tự được thêm vào HashMap.
  3. HashMap gần giống với Hashtable ngoại trừ nó không được đồng bộ hóa và cho phép khóa và giá trị rỗng.
  4. HashMap sử dụng Node lớp bên trong của nó để lưu trữ các mục nhập Map.
  5. HashMap lưu trữ các mục nhập vào nhiều danh sách được liên kết riêng lẻ, được gọi là nhóm hoặc thùng. Số lượng thùng mặc định là 16 và nó luôn có sức mạnh là 2.
  6. HashMap sử dụng các phương thức hashCode() và equals() trên các phím cho các hoạt động nhận và đưa. Vì vậy, đối tượng chính của HashMap nên cung cấp khả năng triển khai tốt các phương thức này. Đây là lý do tại sao các lớp bất biến phù hợp hơn với các khóa, ví dụ như Chuỗi và Interger.
  7. HashMap không an toàn cho luồng, đối với môi trường đa luồng, bạn nên sử dụng lớp ConcurrentHashMap hoặc nhận Map được đồng bộ hóa bằng phương thức Collections.synchronizedMap().

LUYỆN THI CHỨNG CHỈ OCA

HashMap Constructors trong Java

HashMap trong Java cung cấp bốn hàm tạo.

  1. public HashMap(): Phương thức khởi tạo HashMap được sử dụng phổ biến nhất. Hàm tạo này sẽ tạo một HashMap trống với dung lượng ban đầu mặc định là 16 và hệ số tải 0,75
  2. public HashMap(int initialCapacity): và hệ số tải 0,75. Điều này hữu ích trong việc tránh băm lại nếu bạn biết số lượng ánh xạ sẽ được lưu trữ trong HashMap.
  3. public HashMap(int initialCapacity, float loadFactor): Hàm khởi tạo HashMap này sẽ tạo một HashMap trống với dung lượng ban đầu và hệ số tải được chỉ định. Bạn có thể sử dụng điều này nếu bạn biết số lượng ánh xạ tối đa được lưu trữ trong HashMap. Trong các tình huống thông thường, bạn nên tránh điều này vì hệ số tải 0,75 mang lại sự cân bằng tốt giữa chi phí không gian và thời gian.
  4. public HashMap(Map<? extends K, ? extends V> m): Tạo Map có các ánh xạ giống như Map được chỉ định và với hệ số tải 0,75

Ví dụ về HashMap Contructors

Map<String, String> map1 = new HashMap<>(); Map<String, String> map2 = new HashMap<>(2^5); Map<String, String> map3 = new HashMap<>(32,0.80f); Map<String,String> map4 = new HashMap<>(map1);
Code language: JavaScript (javascript)

Các phương thức của HashMap trong Java

  1. public void clear(): Phương thức HashMap này sẽ loại bỏ tất cả các ánh xạ và HashMap sẽ trở nên trống.
  2. public boolean containsKey(Object key): Phương thức này trả về ‘true’ nếu khóa tồn tại, ngược lại nó sẽ trả về ‘false’.
  3. public boolean containsValue(Object value): Phương thức HashMap này trả về true nếu giá trị tồn tại, nếu không thì false.
  4. public Set<Map.Entry<K,V>> entrySet(): Phương thức này trả về dạng xem Set của các ánh xạ HashMap. Tập hợp này được hỗ trợ bởi Map, vì vậy các thay đổi đối với Map được phản ánh trong tập hợp và ngược lại.
  5. public V get(Object key): Trả về giá trị được ánh xạ tới khóa được chỉ định hoặc null nếu không có ánh xạ cho khóa.
  6. public boolean isEmpty(): Một phương thức tiện ích trả về true nếu không có ánh xạ khóa-giá trị nào xuất hiện.
  7. public Set<K> keySet(): Trả về dạng xem Tập hợp các khóa có trong Map này. Tập hợp được Map hỗ trợ, vì vậy các thay đổi đối với Map được phản ánh trong tập hợp và ngược lại.
  8. public V put(K key, V value): Liên kết giá trị được chỉ định với khóa được chỉ định trong Map này. Nếu Map trước đó chứa một ánh xạ cho khóa, thì giá trị cũ sẽ được thay thế.
  9. public void putAll(Map<? extends K, ? extends V> m): Sao chép tất cả các ánh xạ từ Map được chỉ định vào Map này. Các ánh xạ này sẽ thay thế bất kỳ ánh xạ nào mà Map này có cho bất kỳ khóa nào hiện có trong Map được chỉ định.
  10. public V remove(Object key): Loại bỏ ánh xạ cho khóa được chỉ định khỏi Map này nếu có.
  11. public int size(): Trả về số lượng ánh xạ khóa-giá trị trong Map này.
  12. public Collection<V> values(): Trả về chế độ xem Collection của các giá trị có trong Map này. Collection được hỗ trợ bởi Map, vì vậy các thay đổi đối với Map được phản ánh trong Collection và ngược lại.

Trên đây là một số kiến thức của HashMap trong Java. Trong bài sau, tôi sẽ làm một số ví dụ về HashMap trong Java.

Nguồn video: Coding with John


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *