public static HashMap<String, Cat> addCatsToMap(String[] cats) { HashMap<String,Cat> map1 = new HashMap<String,Cat>(); for(int i = 0 ; i < cats.length;i++) map1.put(cats[i],new Cat(cats[i])); 问题1: //这里的值必须要在new Cat()一下。是因为这个方法要传入Cat类型的参数吗? return map1; public class Solution { public static void main(String[] args) { String[] cats = new String[]{"泰格", "米西", "斯摩基", "果酱", "奥斯卡", "雪球", "博斯", "斯马奇", "马克斯", "辛巴"}; HashMap<String, Cat> map = addCatsToMap(cats); 问题2: //这里能不能改成 HashMap<String,String> map = addCatsToMap(cats); for (Map.Entry<String, Cat> pair : map.entrySet()) { System.out.println(pair.getKey() + " - " + pair.getValue()); } } public static HashMap<String, Cat> addCatsToMap(String[] cats) { HashMap<String, Cat> map = new HashMap<>(); for (String name : cats) { map.put(name, new Cat(name)); 问题2: //然后这里改成 map.put(name, name); } return map; }