Tìm hiểu HashMap trong Java qua ví dụ cụ thể

Ngày đăng: 19/06/2019   -    Cập nhật: 28/01/2021

1. HashMap trong Java là gì?


HashMap trong Java là một bảng băm dựa trên việc thực hiện Java's Map interface. Map là một tập hợp các cặp key-value. Nó ánh xạ các key tới các value.


Nói đơn giản hơn thì HashMap về cơ bản chỉ định các unique key cho các value tương ứng có thể được truy xuất tại bất kỳ điểm nào.


Những điểm chính cần lưu ý về Hashmap trong Java:



  • HashMap không thể chứa các key trùng lặp.
  • Java HashMap cho phép các giá trị nullkey null.
  • HashMap là một tập hợp không có thứ tự. Nó không đảm bảo bất kỳ thứ tự cụ thể của các phần tử.
  • Java HashMap không phải thread-safe. Bạn phải đồng bộ hóa rõ ràng các sửa đổi đồng thời với HashMap.

2. Tính năng của HashMap


Các giá trị có thể được lưu trữ trong map bằng cách tạo một cặp key - value. Giá trị có thể được lấy bằng cách truyền key đến đúng phương thức.


Nếu không có phần tử nào tồn tại trong map, nó sẽ ném ra ngoại lệ 'NoSuchEuityException'.


HashMap chỉ lưu trữ các tham chiếu đối tượng (object reference).


Đó là lý do tại sao, không thể sử dụng các kiểu dữ liệu nguyên thủy như double hoặc int. Thay vào đó, sử dụng wrapper class (như Integer hoặc Double)



Cặp key-value của Hashmap trong Java

Cặp key-value của Hashmap trong Java
 

3. Cách tạo một Hashmap trong Java


Sau đây là hai cách để Khai báo HashMap:



HashMap<StringObjectmap = new HashMap<StringObject>();
HashMap x  = new HashMap();
 

 

Các phương thức quan trọng trong Hashmap



  • get(Object KEY) - Phương thức này sẽ trả về giá trị được liên kết với một key được chỉ định trong Java Hashmap này.
  • put(Object KEY, String VALUE) - Phương thức này lưu trữ giá trị được chỉ định và liên kết nó với key được chỉ định trong map này.


Xem tiếp một ví dụ sau về Hashmap:



import java.util.HashMap;
import java.util.Map;

public class CreateHashMapExample {
    public static void main(String[] args) {
        // Tạo một HashMap
        Map<StringIntegernumberMapping = new HashMap<>();

        // Thêm giá Key-Value vào HashMap
        numberMapping.put("One"1);
        numberMapping.put("Two"2);
        numberMapping.put("Three"3);

        // Thêm cặp Key-Value chỉ khi key không tồn tại trong HashMap
        // hoặc được ánh xạ tới null
        numberMapping.putIfAbsent("Four"4);

        System.out.println(numberMapping);
    }
}
 


Kết quả nhận được là:



{One=1, Four=4, Two=2, Three=3}
 

3. Ví dụ về Hashmap trong Java


Sau đây là một ví dụ về triển khai Hash Map trong Java:



import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<StringStringobjMap = new HashMap<StringString>();
    objMap.put("Name""Suzuki");
    objMap.put("Power""220");
    objMap.put("Type""2-wheeler");
    objMap.put("Price""85000");
    System.out.println("Phần tử của Map:");
    System.out.println(objMap);
  }
}
 


Kết quả nhận được là:



Phần tử của Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}
 

4. Ví dụ cách xóa value khỏi Hashmap thông qua key


Ví dụ này chúng ta sẽ thử xóa giá trị bằng cách tham chiếu thông qua key:



import java.util.*;  
public class HashMapExample {  
   public static void main(String args[]) {  
   // Tạo một HashMap 
   HashMap<IntegerStringmap = new HashMap<IntegerString>();           
   map.put(1,"Java");  
   map.put(2"PHP");  
   map.put(3"Android");  
   map.put(4"Tester");
   map.put(5"C++");
   System.out.println("Các khóa học Lập trình tại NIIT: "map);    
   // Loại bỏ giá trị ở key 5 
   map.remove(5);  
   System.out.println("Các khóa học Lập trình tại NIIT sau khi Remove: "map);
   }
}
 


Kết quả nhận được là:



Các khóa học Lập trình tại NIIT: {1=Java, 2=PHP, 3=Android, 4=Tester, 5=C++}
Các khóa học lập trình tại NIIT sau khi Remove: {1=Java, 2=PHP, 3=Android, 4=Tester}
 

5. Một vài câu hỏi về Hashmap giúp bạn hiểu rõ chúng hơn


Câu hỏi 1: Làm thế nào tôi có thể tìm thấy nếu một key cụ thể đã được gán cho Hashmap?


Trả lời: Bạn có thể sử dụng phương thức containsKey(Object KEY), nó sẽ trả về giá trị Boolean nếu Hashmap có giá trị cho key đã cho.


Câu hỏi 2: Làm thế nào để tìm tất cả các key đã có trong Map?


Trả lời: Hashmap có một phương thức được gọi là keyset() sẽ trả về tất cả các key có trên Map. Trong ví dụ trên, nếu bạn viết một dòng là - System.out.println(objMap.keySet());


Bạn sẽ nhận được kết quả:


[Name, Type, Power, Price]


Tương tự, nếu bạn chỉ cần tất cả các value, thì cũng có một phương thức là values().



System.out.println(objMap.values());


Kết quả sẽ trả về:


[Suzuki, 2-wheeler, 220, 85000]




Câu hỏi 3: Giả sử, nếu chỉ cần xóa một key cụ thể khỏi Map, chúng ta có cần xóa toàn bộ Map không?


Trả lời: Không cần. Có một phương thức remove(Object KEY) sẽ chỉ loại bỏ cặp key - value cụ thể đó.


Câu hỏi 4: Làm thế nào chúng ta có thể kiểm tra xem Hashmap có thực sự chứa một số cặp key-value không?


Trả lời: Chỉ cần kiểm tra xem Hashmap có trống hay không!! Nói tóm lại, sử dụng phương thức isEmpty()


Chúc mừng bạn đã hiểu sâu hơn về Hashmap trong Java


Trong bài viết này, bạn đã được tìm hiểu về:

  • HashMap trong Java là gì?
  • Cách tạo HashMap
  • Cách xóa giá trị khỏi HashMap
  • Cách tìm tất cả các key, value có trong Map.


> Bạn muốn tìm hiểu kỹ hơn về Hashmap cũng như ngôn ngữ Java? Hãy tham gia ngay KHÓA HỌC JAVA (Full Stack) tại NIIT - ICT Hà Nội


Tại đây, tất cả các thắc mắc của bạn sẽ được chuyên gia đến từ doanh nghiệp giải đáp thật kỹ càng và nhận cơ hội tuyển dụng ngay tại lớp học.


---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0968051561
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Cùng danh mục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!