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ị
null
và key 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
3. Cách tạo một Hashmap trong Java
Sau đây là hai cách để Khai báo HashMap:
HashMap<String, Object> map = new HashMap<String, Object>();
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<String, Integer> numberMapping = 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<String, String> objMap = new HashMap<String, String>();
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<Integer, String> map = new HashMap<Integer, String>();
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 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