Bài 18: HashMap trong Java

** Gần giống với ArrayList, tuy nhiên HashMap là 1 kiểu đối tượng lưu giá trị theo cặp key / value
Key trong 1 đối tượng kiểu HashMap là duy nhất. HashMap truy cập theo key, không theo số thứ tự giống ArrayList hoặc Array.
** Với mỗi key, bạn sẽ tìm được giá trị tương ứng với key đó. Các key là duy nhất nhưng các giá trị tương ứng với các key khác nhau thì có thể trùng nhau.
** 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.

1. Khởi tạo một Hashmap

**Khởi tạo từ interface Map, chưa định nghĩa kiểu giá trị

 Map hMap1 = new HashMap();
**Khởi tạo từ interface Map, định nghĩa trước kiểu giá trị
Map<Integer, String> hMap2 = new HashMap();
**Khởi tạo từ HashMap, chưa định nghĩa trước kiểu giá trị
HashMap hMap3 = new HashMap();
**Khởi tạo từ HashMap, định nghĩa trước kiểu giá trị
HashMap<Integer, String> hMap4 = new HashMap();
HashMap hMap5 = new HashMap<Integer, String>();
HashMap<Integer, String> hMap6 = new HashMap<Integer, String> ();

**Chú ý: HashMap chỉ chấp nhận dữ liệu (cả key và value) là các đố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,…

2. Cách thức đưa dữ liệu vào và lấy dữ liệu ra từ đối tượng HashMap.

Không phải là phương thức add giống ArrayList, khác biệt một chút! Ta sử dụng put và get

hashmap.put (key, value); //đưa key và value vào hashmap
hashmap.get(key); // Lấy value tương ứng với key trong hashmap

Ví dụ 1:

public class JavaAndroidVn {
 
    public static void main(String[] args) {
        HashMap user = new HashMap();
        user.put("ID1", "TranvanA");
        user.put("ID2", "NguyenVanT");
        user.put("ID3", "VuVanT");
 
        System.out.println(user.get("ID1"));
        System.out.println(user.get("ID2"));
        System.out.println(user.get("ID3"));
 
    }
}

 

Ví dụ 2:

public class JavaAndroidVn {
 
    public static void main(String[] args) {
      HashMap<Integer, String> user = new HashMap<> ();
      user.put(1, "Vu Van A");
      user.put(2, "Nguyenvan t");
      user.put(3, "Nguyenvan C");
      user.put(4, "NguyenvanE");
 
      System.out.println(user.get(1));
      System.out.println(user.get(2));
      System.out.println(user.get(3));
      System.out.println(user.get(4)+"\n");
 
      //Hoặc nếu key gán theo thứ tự số nguyên, có thể dùng :
      for (int i=1; i<5; i++){
          System.out.println(user.get(i));
      }
 
 
    }
}

**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.

3. Cách lấy tất cả các giá trị của HashMap

Các bạn xem ví dụ, nó sẽ lấy toàn bộ dữ liệu từ trong đối tượng HashMap ra:

public class JavaAndroidVn {
 
    public static void main(String[] args) {
        HashMap<Integer, String> user = new HashMap<>();
        user.put(8, "Vu Van A");
        user.put(5, "Nguyenvan t");
        user.put(3, "Nguyenvan C");
        user.put(10, "NguyenvanE");
 
        for (Integer i : user.keySet()) {
            System.out.println(i + " " + user.get(i));
        }
    }
}

 

**Ngoài ra còn có một vài phương thức như remove, clear dùng để xóa bỏ một đối tượng và xóa sạch các đối tượng trong HashMap

Nguồn android.vn

Nguyễn Linh

Chia sẻ để cùng tiến bộ...