任何可以帮助我并检查我的答案
(a)声明一个名为HouseMap的私有实例变量(Attribute),它应该包含一个带有整数键和字符串值的未排序映射。
Private Map< Integer, String> HouseMap = new HashMap<Integer, String>();
(b)编写HouseCatalogue的零参数构造函数,将HouseMap初始化为空映射。
houseMap = new HashMap<Integer, String>();
(c)为HouseCatalogue类编写一个名为addHouse()的实例方法,该方法不带参数,并且不返回任何值。这个方法应该只需输入上面显示的四个条目到HouseMap中。
Public void addHouse()
{
HouseMap.put(101," adison Sas") ;
HouseMap.put(103," FourSeasons") ;
HouseMap.put(105," Hayat Regency ");
HouseMap.put(107," Concord al-Salam ") ;
}
(d)为HouseCatalogue类编写一个名为printHouse()的实例方法,该类接受一个整数参数,并返回一个字符串值。此方法应打印等于整数参数的区号的值(House name)并返回它。否则它将返回null。
Public string printHouse( int area)
{
for(Integer eachcode : HouseMap.keySet())
{
if ( HouseMap.keySet()== area)
{
System.out.println("House name is"+ HouseMap.get(eachcode));
}
}
}
或
public static void printHouse( int area)
{
for(Map.Entry<Integer,String> entry : houseMap.entrySet())
{
if (entry.getKey().equals(area))
{
System.out.println("House name is"+ entry.getValue());
//return entry.getValue(); // return it
}
}
}
答案 0 :(得分:3)
(a)声明时需要private
和new HashMap()
的小写字母。通常在使用java对话时,在声明变量(houseMap
)时使用camelcase但是没关系。
private Map<Integer, String> HouseMap;
(b)您已使用HouseMap
而不是houseMap
声明了您的变量(请参阅(a)camelcase),因此初始化它需要相同的变量:
HouseMap = new HashMap<Integer, String>();
(c)似乎很好
(d)嗯,看不到方法中的要点,它应该打印值和返回它..好吧..先关闭{{ 1}}小写字母,public
带有一个大字母(类的名称,然后是实现:
String
答案 1 :(得分:1)
答案 2 :(得分:1)
由于地图的键是唯一的,您可以按如下方式简化最后一个方法:
public static void printHouse( int area)
{
String name = houseMap.get(area); // May return null
System.out.println("House name is " + name);
return name;
}
答案 3 :(得分:1)
public
和private
必须以小写p形式写入。
您应该显示整个构造函数,而不仅仅是其中的代码。
修复缩进。对每个级别使用相同数量的缩进,并确保所有内容都整齐排列。
当您使用类似for (Integer eachcode: HouseMap.keySet())
的foreach循环时,迭代变量为eachcode
。这是您应该与area
进行比较的值,因为这是整数的值。您不希望将提供的所有区域代码作为一个单元进行比较(这些区域代码不是同一类型);你想依次将它与每个区号进行比较。
但你根本不想写那个循环。 HashMap的目的是让你在给定密钥的情况下查找值。这就是.get()
的作用。您拥有密钥:它是area
。所以你需要做的就是查找它:System.out.println("House name is " + HouseMap.get(area))
。
您还需要返回您查找的名称,而不仅仅是打印它,并且您需要在打印前检查名称是否存在(使用.contains()
)。
看起来有人评论你的代码说“你也忘了归还”。您是否尝试与此人交谈或阅读评论?
答案 4 :(得分:0)
只是暗示最后一个:
(d)编写一个名为
的实例方法
实例方法不是静态方法,您必须在第二个(d)方法中删除static关键字...
答案 5 :(得分:0)
非常感谢每个人
public static String printHouse(int 代码){
if (houseMap.containsKey(code)) { String name = houseMap.get(coe); System.out.println(code+ " : " + name); return name; } else{ System.out.println("null"); return null; }