cuốn sách gpt4 ai đã làm

JAVA HashMap 2D, không thể có cách chính xác để tạo HashMap 2D, ý tôi là chuyển đổi HashMap thành HashMap khác

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-01 22:31:33 32 4
mua khóa gpt4 Nike

Tôi muốn làm một bảng có tên và môn học của học sinh, mỗi học sinh có một điểm trong mỗi môn học (hoặc không.. anh ấy có thể rời khỏi bài thi mà không viết, khi đó trường hợp của anh ấy sẽ trống). Tôi chỉ muốn sử dụng HashMap. Ý tôi là, nó sẽ trông như thế này:

HashMap<>> bigBoard = 
HashMap mới<>>();

Nhưng tôi nghĩ, tôi không có ý đúng, vì với mỗi môn học sẽ có nhiều điểm (giá trị) nên điều này là không thể. Tôi có phải tạo bản đồ cho mỗi học sinh không? Với chủ đề của anh ấy? Nhưng khi đó bảng đầu ra sẽ không được lên lịch. Bạn có gợi ý gì không? Ví dụ, tôi muốn một cái bàn trông như thế này.

Phím Cột →
Rowkey↓ Toán Vật lý Tài chính

Daniel Dolter 1.3 3.7

Chuột Micky 5

Chuột Minnie 1.7 n/a

Vịt Dagobert 4.0 1.0

(Tôi sẽ sử dụng tất cả các khóa/giá trị dưới dạng chuỗi, nó sẽ đơn giản hơn.)

Sau khi lớp của chúng ta được triển khai (ví dụ tên lớp là String2D), chúng ta nên sử dụng nó như thế này.

public static void main(String[] args) {

String2D map2D = new String2D();
map2D.put("Daniel Doster", "Toán thực hành", "1.3");
map2D.put("Daniel Doster", "Hệ thống CNTT", "3.7");
map2D.put("Micky Mouse", "Tài chính", "5");
map2D.put("Chuột Minnie", "Hệ thống CNTT", "1.7");
map2D.put("Chuột Minnie", "Tài chính", "n/a");
map2D.put("Dagobert Duck", "Toán thực hành", "4.0");
map2D.put("Dagobert Duck", "Tài chính", "1.0");
System.out.println(map2D);
}

"HashMap" sẽ không được nhìn thấy... và mảng không được phép

câu trả lời hay nhất

Bạn có thể sử dụng lớp này:

lớp công khai BiHashMap {

bản đồ cuối cùng riêng tư> mMap;

BiHashMap công khai() {
mMap = new HashMap>();
}

/**
* Liên kết giá trị được chỉ định với các khóa được chỉ định trong bản đồ này (thao tác tùy chọn nếu bản đồ trước đó).
* chứa ánh xạ cho khóa, giá trị cũ được thay thế bằng giá trị đã chỉ định.
*
* @param key1
*chìa khóa đầu tiên
* @param key2
* phím thứ hai
* Giá trị @param
* giá trị cần đặt
* @trả về giá trị được liên kết trước đó với (key1,key2) hoặc null nếu không có
* @see Map#put(Đối tượng, Đối tượng)
*/
đặt V công khai (K1 key1, K2 key2, giá trị V) {
Bản đồ bản đồ;
if (mMap.containsKey(key1)) {
bản đồ = mMap.get(key1);
} khác {
map = new HashMap();
mMap.put(key1, bản đồ);
}

trả về map.put(key2, value);
}

/**
* Trả về giá trị mà khóa đã chỉ định được ánh xạ hoặc null nếu bản đồ này không chứa ánh xạ cho
* chìa khóa.
*
* @param key1
* khóa đầu tiên có giá trị liên quan sẽ được trả về
* @param key2
* khóa thứ hai có giá trị liên quan sẽ được trả về
* @return giá trị mà khóa được chỉ định được ánh xạ hoặc null nếu bản đồ này không chứa ánh xạ cho
* chìa khóa
* @see Map#get(Object)
*/
công khai V get(K1 key1, K2 key2) {
if (mMap.containsKey(key1)) {
trả về mMap.get(key1).get(key2);
} khác {
return null;
}
}

/**
* Trả về true nếu bản đồ này chứa ánh xạ cho khóa được chỉ định
*
* @param key1
* chìa khóa đầu tiên có sự hiện diện trong bản đồ này sẽ được kiểm tra
* @param key2
* khóa thứ hai có sự hiện diện trong bản đồ này sẽ được kiểm tra
* @return Trả về true nếu bản đồ này chứa ánh xạ cho khóa được chỉ định
* @see Map#containsKey(Object)
*/
boolean công khai chứaKeys(K1 key1, K2 key2) {
trả về mMap.containsKey(key1) && mMap.get(key1).containsKey(key2);
}

khoảng trống công khai rõ ràng () {
mMap.clear();
}

}

Sau đó tạo và sử dụng nó như thế này:

BiHashMap bigBoard = BiHashMap mới();

Nhưng để cải thiện hiệu suất, bạn có thể muốn lưu trữ các lớp khác nhau trong một mảng (giả sử bạn có một nhóm lớp cố định)

Về JAVA HashMap 2D, không thể có cách chính xác để tạo HashMap 2D, ý tôi là chuyển đổi HashMap thành một HashMap khác, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10299560/

32 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress