Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách Sử Dụng Lớp HashMap Trong Java

Trong lập trình, kiểu dữ liệu dùng phân loại loại dữ liệu cụ thể. Mỗi kiểu dữ liệu lưu trữ cách khác nhau, và kiểu dữ liệu giá trị lưu trữ xác định phép toán có thể thực hiện trên giá trị.

Khi làm việc trong Java, một lớp bạn có thể gặp là lớp HashMap Java. Lớp này là phần của khung collections (collections framework) và cho phép lập trình viên lưu trữ dữ liệu dùng kiểu dữ liệu Map.

Hướng dẫn này thảo luận cơ bản HashMap Java, cách tạo HashMap, và khám phá các phương thức chính dùng khi làm việc với lớp HashMap. Bài viết tham khảo ví dụ xuyên suốt để giải thích lớp HashMap sâu hơn.

Map Và HashMap Trong Java

Giao diện Map Java dùng lưu giá trị Map theo cặp khóa/giá trị (key/value pair). Khóa là giá trị duy nhất liên kết với giá trị cụ thể. Trong Java, map không chứa khóa trùng lặp, và mỗi khóa phải liên kết với giá trị cụ thể.

Cấu trúc khóa/giá trị do Map cung cấp cho phép truy cập giá trị dựa trên khóa. Vì vậy, nếu có map với khóa gbp và giá trị United Kingdom, khi tham chiếu khóa gbp giá trị “United Kingdom” trả về.

Lớp HashMap là phần của khung collections và cho phép lưu trữ dữ liệu dùng giao diện Map và bảng băm (hash tables). Bảng băm là tập hợp đặc biệt dùng lưu trữ mục khóa/giá trị.

Trước khi tạo HashMap, phải nhập gói HashMap. Cách làm trong chương trình Java:

import java.util.hashmap;

Bây giờ đã nhập gói HashMap, có thể bắt đầu tạo HashMap trong Java.

Tạo HashMap

Để tạo HashMap trong Java, dùng cú pháp:

HashMap<KeyType, ValueType> map_name = new HashMap<KeyType, ValueType>(capacity, loadFactor);

Phân tích thành thành phần cơ bản:

  • HashMap báo cho mã chúng ta khai báo hashmap.
  • <KeyType, ValueType> lưu kiểu dữ liệu cho khóa và giá trị, tương ứng.
  • map_name là tên hashmap khai báo.
  • new HashMap<KeyType, ValueType> báo mã khởi tạo HashMap với kiểu dữ liệu chỉ định.
  • capacity báo mã số mục có thể lưu. Mặc định 16. (tùy chọn)
  • loadFactor báo khi bảng băm đạt dung lượng nhất định, bảng băm mới gấp đôi kích thước gốc tạo. Mặc định 0.75 (75% dung lượng). (tùy chọn)

Giả sử tạo chương trình doanh nghiệp đổi tiền tệ địa phương. Họ muốn chương trình lưu tên quốc gia và mã tiền tệ họ cung cấp dịch vụ đổi. Dùng HashMap tốt để lưu dữ liệu này vì có hai mục muốn lưu cùng nhau: tên quốc gia và mã tiền tệ.

Mã tạo HashMap cho mục đích này:

import java.util.HashMap; HashMap<String, String> currencyCodes = new HashMap<String, String>(); 

Trong ví dụ, khai báo HashMap tên currencyCodes lưu hai giá trị String. Bây giờ có HashMap, có thể bắt đầu thêm mục và thao tác nội dung.

Thêm Mục

Lớp HashMap cung cấp nhiều phương thức lưu trữ và thao tác dữ liệu. Phương thức put() dùng thêm giá trị vào HashMap dùng cấu trúc khóa/giá trị.

Quay lại đổi tiền tệ. Giả sử muốn thêm mục GBP/United Kingdom vào chương trình, lưu giá trị tiền tệ UK. Khóa GBP ánh xạ giá trị United Kingdom trong ví dụ. Có thể làm bằng mã:

import java.util.HashMap; class CurrencyExchange { public static void main(String[] args) { HashMap<String, String> currencyCodes = new HashMap<String, String>(); currencyCodes.put("GBP", "United Kingdom"); currencyCodes.put("USD", "United States"); System.out.println(currencyCodes); } } 

Trong mã, khởi tạo hash map currencyCodes, sau đó dùng phương thức put() thêm mục vào hash map. Mục này có khóa GBP và giá trị United Kingdom. Sau đó in giá trị HashMap, trả về:

{GBP=United Kingdom,USD=United States}

Như bạn thấy, HashMap giờ chứa hai giá trị: GBP=United Kingdom và USD=United States.

Truy Cập Mục

Để truy cập mục trong HashMap, dùng phương thức get(). Phương thức get chấp nhận một tham số: tên khóa giá trị muốn truy xuất.

Giả sử muốn truy xuất tên quốc gia liên kết GBP. Có thể làm bằng mã:

… String gbp = currencyCodes.get("GBP"); System.out.println(currencyCodes); … 

Mã trả về: United Kingdom.

Xóa Mục

Phương thức remove() dùng xóa mục từ HashMap. remove() chấp nhận một tham số: tên khóa mục muốn xóa.

Giả sử muốn xóa GBP từ HashMap. Có thể làm bằng mã:

… currencyCodes.remove("GBP"); System.out.println(currencyCodes); … 

Khi chạy mã, GBP bị xóa từ HashMap và phản hồi sau trả về: {USD=United States}

Ngoài ra, phương thức clear() dùng xóa tất cả mục từ HashMap. clear() không chấp nhận tham số. Ví dụ clear() trong thực tế:

… currencyCodes.clear(); System.out.println(currencyCodes); … 

Mã trả về HashMap rỗng: {}.

Thay Thế Phần Tử HashMap

Phương thức replace() dùng thay thế giá trị liên kết khóa cụ thể bằng giá trị mới. replace() chấp nhận hai tham số: khóa giá trị muốn thay thế, và giá trị mới thay thế giá trị cũ.

Giả sử muốn thay thế giá trị United Kingdom bằng Great Britain trong HashMap. Có thể làm bằng mã:

… currencyCodes.replace("GBP", "Great Britain") System.out.print(currencyCodes); … 

Khi thực thi mã, giá trị khóa GBP (là United Kingdom trường hợp này) thay bằng Great Britain và chương trình trả về:

{GBP=Great Britain,USD=United States}

Lặp Qua HashMap

Ngoài ra, có thể lặp qua HashMap trong Java. HashMap cung cấp ba phương thức dùng lặp qua HashMap:

  • keySet() dùng lặp qua khóa trong HashMap.
  • values() dùng lặp qua giá trị trong HashMap.
  • entrySet() dùng lặp qua khóa và giá trị trong HashMap.

Cách dễ nhất lặp qua HashMap là dùng vòng lặp for-each. Nếu quan tâm tìm hiểu thêm vòng lặp for-each Java, đọc hướng dẫn chủ đề tại đây.

Giả sử muốn in mọi giá trị currencyCodes HashMap ra bảng điều khiển để hiển thị danh sách tiền tệ họ cung cấp lưu trong HashMap. Có thể dùng mã:

import java.util.HashMap; class CurrencyExchange { public static void main(String[] args) { HashMap<String, String> currencyCodes = new HashMap<String, String>(); currencyCodes.put("GBP", "Great Britain"); currencyCodes.put("USD", "United States"); for(String value : currencyCodes.values()) { System.out.println(value); } } } 

Khi chạy mã, phản hồi sau trả về:

Great Britain

United States

Trong mã, dùng vòng lặp for-each lặp qua mỗi mục danh sách currencyCodes.values(). Sau đó in mỗi mục trên dòng mới.

Nếu muốn lặp qua mọi khóa in tên mỗi khóa trong HashMap, có thể thay values() bằng keySet() trong mã. Chương trình trả về:

GBP

USD

Kết Luận

Lớp HashMap Java dùng lưu trữ dữ liệu dùng cấu trúc tập hợp khóa/giá trị. Cấu trúc này hữu ích nếu muốn lưu hai giá trị nên liên kết nhau.

Hướng dẫn này bao gồm cơ bản HashMap. Chúng ta chỉ cách tạo HashMap, khám phá vài ví dụ phương thức HashMap phổ biến trong thực tế. Bây giờ bạn trang bị thông tin cần thiết làm việc với HashMap Java như chuyên gia!