【发布时间】:2015-09-25 18:58:34
【问题描述】:
基本上我知道如何用 ArrayList 做到这一点,但用 Array 做到这一点我完全被难住了。
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
import java.util.Collection;
public class NobelPrizeWinners
{
private HashMap<String, PrizeWinners[]> winners;
public NobelPrizeWinners()
{
winners = new HashMap<String, PrizeWinners[]>();
PrizeWinners[] name = new PrizeWinners[3];
name[0] = new PrizeWinners("hey" , "Hey");
winners.put("2008", name);
}
}
public void displayAllYearsAndWinners(){
Set<String> years = winners.keySet();
for(String year : years){
PrizeWinners [] list = winners.get(year);
for(PrizeWinners[] names : list){
System.out.println(year + " " + names);
}
}
}
这仅返回内存地址而不是实际的字符串(PrizeWinners 类在构造函数中有两个字符串参数,以及名字和姓氏的两个设置方法)
我觉得我已经很接近了,因为它返回了 3 次“2008”,但只有内存地址或其他 3 次为 null(因为我还没有添加其他 2 个数组,但仍在测试它是否有效)
任何帮助将不胜感激,我觉得它的名称或方法是我需要调用的,我不确定。
【问题讨论】:
-
什么时候返回?你的
return声明在哪里? -
我有一个单独的方法,可以在每个循环的两个中间打印名称,所以我猜它实际上不会像通过 System.out.println 打印和打印出来那样返回它打印内存地址。
-
你也应该包含那个方法。
-
好的,我现在就编辑它
-
我现在把方法放在那里
标签: java arrays string hashmap