HashMap trong Java là một kiểu đối tượng được dùng để lưu các cặp giá trị key/value. Với 1 key, bạn có thể tìm được value ứng với key đó. Key phải là duy nhất trong 1 HashMap, ứng với mỗi key sẽ có 1 value tương ứng duy nhất. Value thì có thể trùng nhau.
HashMap thừa kế từ interface java.util.Map. HashMap dùng 1 mảng hash table để cài đặt chi tiết từ Map. Do đó, với mỗi cặp, HashMap sẽ gọi hàm hashCode() của key để lấy giá trị hash vào bảng hash table tương ứng.
Kiểu đối tượng của giá trị key/value của HashMap phải đồng nhất. Trong trường hợp không xác định kiểu dữ liệu, thì java sẽ xem như là kiểu Object – là cha của tất cả đối tượng khác trong Java.
Khởi tạo
Khởi tạo một Hashmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| import java.util.HashMap; import java.util.Map; public class HashMapDemo { public static void main(String[] args) { // Khởi tạo từ interface Map, chưa định nghĩa kiểu giá trị Map hm1 = new HashMap(); // Khởi tạo từ interface Map, định nghĩa trước kiểu giá trị Map<Integer, String> hm2 = new HashMap(); //Khởi tạo từ HashMap, chưa định nghĩa trước kiểu giá trị HashMap hm3 = new HashMap(); //Khởi tạo từ HashMap, định nghĩa trước kiểu giá trị HashMap<Integer, String> hm4 = new HashMap(); HashMap hm5 = new HashMap<Integer, String>(); HashMap<Integer, String> hm6 = new HashMap<Integer, String> (); } } |
HashMap chỉ chấp nhận dữ liệu (cả key và value) là đối tượng. Do đó, các kiểu int, long, double,… không được chấp nhận mà phải dùng Integer, Long, Double,…
Đưa dữ liệu vào và lấy dữ liệu từ HashMap
– Chú ý: Dữ liệu đưa vào HashMap phải ứng với kiểu dữ liệu đã định nghĩa lúc khởi tạo HashMap
1
2
3
| hashmap.put (key, value); //đưa dữ liệu và HashMap hashmap hashmap.get(key); // Lấy value tương ứng với key trong hashmap |
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| public static void main(String[] args) { HashMap<Integer, String> hm6 = new HashMap<Integer, String> (); hm6.put( 1 , "apple" ); hm6.put( 2 , "banana" ); hm6.put( 3 , "kiwi" ); hm6.put( 4 , "peach" ); // hm6.put(5, 12345); //Error HashMap<Integer,String> is not applicable for the arguments (int, int) // hm6.put("6", "coconut"); //Error not applicable for the arguments System.out.println( "value for 1: " + hm6.get( 1 )); System.out.println( "value for 2: " + hm6.get( 2 )); System.out.println( "value for 3: " + hm6.get( 3 )); System.out.println( "value for 4: " + hm6.get( 4 )); System.out.println( "value for 5: " + hm6.get( 5 )); System.out.println( "value for 10: " + hm6.get( 10 )); } Output: value for 1 : apple value for 2 : banana value for 3 : kiwi value for 4 : peach value for 5 : null value for 10 : null |
Lấy tất cả giá trị của HashMap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| //use java.util.Map.Entry System.out.println( "List key + value:" ); for (Entry<Integer, String> e : hm6.entrySet()){ System.out.println( "Value for " + e.getKey() + " : " + e.getValue()); } //use keySet System.out.println( "List keys" ); for (Integer i : hm6.keySet()){ System.out.println(i); } //user valueSet System.out.println( "List values" ); for (String s : hm6.values()){ System.out.println(s); } |
Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| List key + value: Value for 1 : apple Value for 2 : banana Value for 3 : kiwi Value for 4 : peach List keys 1 2 3 4 List values apple banana kiwi peach |
No comments:
Post a Comment