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

java - 如何使用相同的递归函数迭代 Map 和 Map<>> ?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 11:16:27 27 4
mua khóa gpt4 Nike

Ví dụ: để lặp lại List và List<>> bằng cách sử dụng cùng một hàm, tôi có thể viết một cái gì đó như thế này:

nhập java.util.*;
Kiểm tra lớp công khai {
public static void print(Object obj) {
if(danh sách obj instanceof){
Danh sách list=(List)obj;
System.out.print("[");
for(Đối tượng obj2 : danh sách){
in(obj2);
}
System.out.print("]");
}khác{
System.out.print(obj+",");
}
}

public static void main(String[] args){
Chuỗi l0="a";
System.out.println(l0);

List l1=Arrays.asList("a","b");
in(l1);

System.out.println("");

List<> > l2=Arrays.asList(Arrays.asList("a","b"),Arrays.asList("c","d"));
in(l2);
}
}

Đầu ra:

Một
[ab ]
[[ab ][cd ]]

Bây giờ tôi muốn lặp lại Map và Map<>> tương tự, tôi đã thử:

nhập java.util.*;
Kiểm tra lớp công khai {
public static void print(Object obj) {
if(obj instanceof Map){
System.out.print("{");
Bản đồ bản đồ=(Bản đồ)obj;
for(Map.Entry mục nhập : map.entrySet()){
print(entry.getKey());
System.out.print(://);
print(entry.getValue());
System.out.print(",");
}
System.out.print("}");
}khác{
System.out.print(obj);
}
}
public static void main(String[] args){
Chuỗi m0="a";
in(m0);

System.out.println("");

Bản đồ m1=HashMap mới();
m1.put("họ","Tom");
m1.put("họ","Bob");
in(m1);

System.out.println("");

Bản đồ<>> m2=HashMap mới<>>();
HashMap mm1=New HashMap();
mm1.put("họ","Tom");
mm1.put("họ","Bob");
mm1.put("biệt danh","Chim cánh cụt");
m2.put("chủ sở hữu", mm1);
HashMap mm2=New HashMap();
mm2.put("tên","May mắn");
mm2.put("loại","cat");
m2.put("thú cưng", mm2);
in(m2);
}
}

Sản lượng dự kiến ​​​​tương tự như:

Một
{họ:Tom,họ:Bob,}
{chủ sở hữu:{họ:Tom,biệt danh:Penguin,họ:Bob,},pet:{name:Lucky,type:cat,},}

Nhưng nó không biên dịch:

Test.java:20: lỗi: loại không tương thích: Không thể chuyển đổi đối tượng thành Entry
for(Map.Entry mục nhập : map.entrySet()){

Lý do cho điều này là gì? Nó có thể được sửa chữa? Nếu không, làm cách nào tôi có thể lặp lại bản đồ lồng nhau một cách đệ quy giống như phép lặp đệ quy của danh sách được hiển thị ở đầu?

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

mộtMapBản đồ<đối tượng,="" đối="" tượng=""> khác biệt.

nó sẽ được chuyển đổi thành Bản đồ<đối tượng,="" đối="" tượng="">hoặc sử dụngLối vàoKhông có thuốc generic.

java - Làm cách nào để lặp lại Map và Map<>> bằng cách sử dụng cùng một hàm đệ quy? , 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/45411631/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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