Ôn tập: HashMap
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 15 trên 59.
Thử thách
DễTạo một phương thức có tên processHashMap, nhận một HashMap<String, Integer> và một mảng các thao tác String, sau đó thực hiện các hành động sau:
1. Thao tác GET
- Định dạng:
"GET key" - Hành động:
- Nếu khóa tồn tại: In ra giá trị
- Nếu khóa không tồn tại: In ra
"Not found"
2. Thao tác CHECK
- Định dạng:
"CHECK key" - Hành động:
- Nếu khóa tồn tại: In ra
"Exists" - Nếu khóa không tồn tại: In ra
"Not found"
- Nếu khóa tồn tại: In ra
3. Thao tác MODIFY
- Định dạng:
"MODIFY key targetValue" - Hành động:
- Nếu khóa tồn tại VÀ giá trị hiện tại của khóa bằng targetValue: Dùng
replace()để cập nhật giá trị thành targetValue + 1 - Nếu khóa tồn tại NHƯNG giá trị hiện tại khác targetValue: Dùng
remove()để xóa khóa - Nếu khóa không tồn tại: Dùng
put()để thêm khóa với targetValue làm giá trị
- Nếu khóa tồn tại VÀ giá trị hiện tại của khóa bằng targetValue: Dùng
- Lưu ý: KHÔNG in ra bất cứ thứ gì trong các thao tác MODIFY
Đầu ra cuối cùng:
Sau khi xử lý tất cả các thao tác, phương thức sẽ trả về HashMap đã sửa đổi. Phương thức main sẽ in HashMap đó ở định dạng JSON.
Tự làm thử
// Các module chuyển chuỗi biểu diễn 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> processHashMap(HashMap<String, Integer> data, String[] operations) {
// 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 operationsString = scanner.nextLine();
// Chuyển chuỗi biểu diễn HashMap thành HashMap
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
// Chuyển chuỗi biểu diễn mảng (array) thành mảng
String[] operations = new Gson().fromJson(operationsString, String[].class);
HashMap<String, Integer> result = processHashMap(data, operations);
System.out.println(new Gson().toJson(result));
}
}
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