Chỉnh sửa từ điển
Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 14 trên 59.
HashMap cũng hỗ trợ xóa và cập nhật các mục bằng các phương thức put(), remove() và replace().
Ví dụ, trước tiên hãy thêm dữ liệu vào HashMap:
HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");Để xóa một khóa:
users.remove("bob"); // Xóa "bob"
System.out.println(users);
// {alice=Admin}Để cập nhật một khóa:
users.replace("alice", "Guest");
// Đổi alice thành Guest
users.replace("Charlie", "Admin");
// Không làm gì (khóa "Charlie" không tồn tại)Thử thách
DễViết một phương thức có tên modifyMap để sửa đổi một HashMap theo các điều kiện cụ thể.
- Nhận một HashMap có tên
data, trong đó:- Các khóa có kiểu
String. - Các giá trị có kiểu
Integer.
- Các khóa có kiểu
- Nhận một String
key. - Nhận một Integer
newValue.
Phương thức cần trả về HashMap đã cập nhật theo các quy tắc sau:
- Nếu khóa tồn tại trong
datavà có cùng giá trị vớinewValue, dùngreplace()nhưng tăng giá trị lên 1. - Nếu khóa tồn tại nhưng có giá trị khác, xóa khóa đó.
- Nếu khóa không tồn tại, thêm khóa đó với giá trị
newValue.
Tự làm thử
// Các module chuyển chuỗi hashmap thành hashmap
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static HashMap<String, Integer> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
// Viết code của bạn ở đây
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String key = scanner.nextLine();
int newValue = scanner.nextInt();
// Chuyển String của HashMap thành HashMap
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
HashMap<String, Integer> result = modifyMap(data, key, newValue);
System.out.println(new Gson().toJson(result));
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Mảng đa chiều
Kiến thức cơ bản về mảng 2DTruy cập phần tử trong mảng 2DVòng lặp lồng nhau với mảng 2DÔn tập về mảng 2DPhép cộng và phép trừ ma trậnMảng không đềuMảng 3D trở lênCác mẫu thường gặp với mảng 2DÔn tập về mảng2HashMap phần 1
HashMap là gì?Khai báo HashMapTruy cập giá trịKiểm tra khóa có tồn tạiChỉnh sửa từ điểnÔn tập: HashMapTự luyện tập: Trình biên dịch Java online