Computer >> Máy Tính >  >> Lập trình >> Java

Cách sử dụng lớp Java HashMap

Trong lập trình, các kiểu dữ liệu được sử dụng để phân loại các kiểu dữ liệu cụ thể. Mỗi kiểu dữ liệu được lưu trữ theo một cách khác nhau và kiểu dữ liệu mà một giá trị được lưu trữ sẽ xác định các hoạt động có thể được thực hiện trên giá trị đó.

Khi bạn đang làm việc trong Java, một lớp bạn có thể gặp phải là lớp Java HashMap. Lớp này là một phần của khung tập hợp và cho phép các nhà phát triển lưu trữ dữ liệu bằng cách sử dụng kiểu dữ liệu Bản đồ.

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

Java Maps và HashMap

Giao diện Bản đồ Java được sử dụng để lưu trữ các giá trị Bản đồ trong một cặp khóa / giá trị. Khóa là các giá trị duy nhất được liên kết với một giá trị cụ thể. Trong Java, một bản đồ không được chứa các khóa trùng lặp và mỗi khóa phải được liên kết với một giá trị cụ thể.

Cấu trúc khóa / giá trị do Map cung cấp cho phép bạn truy cập các giá trị dựa trên các khóa của chúng. Vì vậy, nếu bạn có một bản đồ với khóa gbp và giá trị United Kingdom , khi bạn tham chiếu khóa gbp giá trị “Vương quốc Anh” sẽ được trả lại.

Lớp HashMap là một phần của khung tập hợp và cho phép bạn lưu trữ dữ liệu bằng giao diện Bản đồ và bảng băm. Bảng băm là bộ sưu tập đặc biệt được sử dụng để lưu trữ các mục khóa / giá trị.

Trước khi có thể tạo HashMap, trước tiên chúng ta phải nhập gói HashMap. Dưới đây là cách chúng tôi có thể làm điều đó trong một chương trình Java:

import java.util.hashmap;

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

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

Tạo HashMap

Để tạo HashMap trong Java, chúng ta có thể sử dụng cú pháp sau:

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

Hãy chia điều này thành các thành phần cơ bản của nó:

  • HashMap được sử dụng để cho mã của chúng tôi biết rằng chúng tôi đang khai báo một bản đồ băm.
  • lưu trữ các kiểu dữ liệu tương ứng cho các khóa và giá trị.
  • map_name là tên của hashmap mà chúng tôi đã khai báo.
  • Bản đồ HashMap mới yêu cầu mã của chúng tôi khởi tạo HashMap với các kiểu dữ liệu mà chúng tôi đã chỉ định.
  • dung lượng cho mã của chúng tôi biết có bao nhiêu mục nhập mà nó có thể lưu trữ. Theo mặc định, điều này được đặt thành 16. (tùy chọn)
  • loadFactor cho mã của chúng ta biết rằng khi bảng băm của chúng ta đạt đến một dung lượng nhất định, một bảng băm mới có kích thước gấp đôi bảng băm ban đầu sẽ được tạo. Theo mặc định, giá trị này được đặt thành 0,75 (hoặc 75% dung lượng). (tùy chọn)

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

Đây là mã chúng tôi sẽ sử dụng để tạo HashMap cho mục đích này:

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

Trong ví dụ này, chúng tôi đã khai báo một HashMap được gọi là currencyCodes nơi lưu trữ hai giá trị Chuỗi. Bây giờ chúng ta đã có HashMap của mình, chúng ta có thể bắt đầu thêm các mục và thao tác với nội dung của nó.

Thêm mục

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

Hãy quay lại trao đổi tiền tệ. Giả sử chúng ta muốn thêm mục nhập GBP / United Kingdom vào chương trình của chúng tôi, chương trình này sẽ lưu trữ giá trị tiền tệ của Vương quốc Anh. GBP khóa được ánh xạ tới United Kingdom giá trị trong ví dụ này. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

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ã của chúng tôi, chúng tôi khởi tạo một bản đồ băm có tên là currencyCodes , sau đó chúng tôi sử dụng phương thức put () để thêm một mục nhập vào bản đồ băm. Mục nhập này có khóa GBP và giá trị United Kingdom . Sau đó, chúng tôi in ra giá trị của HashMap, giá trị này sẽ trả về giá trị sau:

{GBP=United Kingdom,USD=United States}

Như bạn có thể thấy, HashMap của chúng tôi hiện chứa hai giá trị:GBP =Vương quốc Anh và USD =Hoa Kỳ.

Truy cập một mục

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

Giả sử chúng ta muốn truy xuất tên quốc gia được liên kết với GBP. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

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

Mã của chúng tôi trả về:Vương quốc Anh.

Remove an Item

Phương thức remove () được sử dụng để xóa một mục khỏi HashMap. remove () chấp nhận một tham số:tên của khóa có mục nhập mà bạn muốn xóa.

Giả sử chúng ta muốn xóa GBP từ HashMap của chúng tôi. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

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

Khi chúng tôi chạy mã của mình, GBP bị xóa khỏi HashMap của chúng tôi và phản hồi sau được trả lại:{USD =United States}

Ngoài ra, phương thức clear () được sử dụng để xóa tất cả các mục khỏi HashMap. clear () không chấp nhận tham số. Dưới đây là một ví dụ về phương thức clear () đang hoạt động:

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

Mã của chúng tôi trả về một HashMap trống: {} .

Thay thế các phần tử HashMap

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

Ví dụ:giả sử chúng tôi muốn thay thế giá trị United Kingdom với United Kingdom trong HashMap của chúng tôi. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

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

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

{GBP =Vương quốc Anh, USD =Hoa Kỳ}

Lặp lại qua HashMap

Ngoài ra, bạn có thể lặp qua HashMap trong Java. HashMap cung cấp ba phương pháp có thể được sử dụng để lặp lại qua HashMap:

  • keySet () được sử dụng để lặp lại các khóa trong HashMap.
  • giá trị () được sử dụng để lặp lại các giá trị trong HashMap.
  • entrySet () được sử dụng để lặp lại các khóa và giá trị trong HashMap.

Cách dễ nhất mà chúng ta có thể lặp lại qua HashMap là sử dụng for-each vòng. Nếu bạn muốn tìm hiểu thêm về Java cho từng vòng lặp, bạn có thể đọc hướng dẫn của chúng tôi về chủ đề này tại đây.

Giả sử chúng ta muốn in ra mọi giá trị bằng currencyCodes của mình ”HashMap vào bảng điều khiển để chúng tôi có thể hiển thị cho doanh nghiệp chuyển đổi tiền tệ danh sách các đơn vị tiền tệ mà họ cung cấp được lưu trữ trong HashMap. Chúng tôi có thể sử dụng mã sau để thực hiện việc này:

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úng tôi chạy mã của mình, phản hồi sau được trả về:

United Kingdom

United States

Trong mã của chúng tôi, chúng tôi sử dụng for-each lặp để lặp lại mọi mục trong danh sách currencyCodes.values() . Sau đó, chúng tôi in ra từng mục trên một dòng mới.

Nếu chúng tôi muốn lặp lại mọi khóa và in ra tên của từng khóa trong HashMap của mình, chúng tôi có thể thay thế các giá trị values() với keySet() trong mã của chúng tôi ở trên. Đây là những gì chương trình của chúng tôi sẽ trả lại:

GBP

USD

Kết luận

Lớp Java HashMap được sử dụng để lưu trữ dữ liệu bằng cách sử dụng cấu trúc thu thập khóa / giá trị. Cấu trúc này hữu ích nếu bạn muốn lưu trữ hai giá trị nên được liên kết với nhau.

Hướng dẫn này bao gồm những kiến ​​thức cơ bản về HashMaps. Chúng tôi đã hướng dẫn bạn cách tạo HashMap và khám phá một vài ví dụ về các phương pháp HashMap phổ biến trong thực tế. Giờ đây, bạn đã được trang bị thông tin cần thiết để làm việc với Java HashMaps như một chuyên gia!