Hasmap,返回键和值作为列表
我有作业要做,所以我已经完成了脚本,但问题是与值。Hasmap,返回键和值作为列表
主要代码(我不能改变它由于家庭作业):
List<String> result = cw.getResult();
for (String wordRes : result) {
System.out.println(wordRes);
}
它必须返回:
ABC 2
DEF 2
GHI 1
我不知道该如何处理。
现在只显示:
ABC
高清
GHI
我不知道如何改变这种方法的getResult与hasmap的价值回归,以及在不改变第一主码。
public List<String> getResult() {
List<String> keyList = new ArrayList<String>(list.keySet());
return keyList;
}
HashMap的是:{abc=2, def=2, ghi=1}
和列表:Map<String, Integer> list = new HashMap<String, Integer>();
请帮助我,如果你知道有决心,我放弃了4个小时来寻找等后...
最简单的方法使一个ArrayList和添加为@dasblinkenlight说...
Iterator<?> it = list.entrySet().iterator();
while (it.hasNext()) {
@SuppressWarnings("rawtypes")
Map.Entry maps = (Map.Entry) it.next();
lista.add(maps.getKey() + " " + maps.getValue());
}
}
public List<String> getResult() {
List<String> temp = lista;
return temp;
}
我想,现在您已经了解了keySet
和valueSet
,您的下一个任务是了解entrySet
。这是Map.Entry<K,V>
项目的集合,这些项目又由关键字和值组成。
这正是你需要完成你的任务是什么 - 只是迭代的entrySet
您Map
同时增加值的串联和关键,你的结果:
result.add(entry.getKey() + " " + entry.getValue());
请注意,如果您使用的是常规HashMap
,结果中的项目不会按任何特定顺序排列。
嗯,我只是认为有任何机会设置另一个列表相同的方法intead。 – WinterTime 2015-03-31 01:59:37
@Potar你想要的字符串列表在地图里不存在,所以你必须自己创建。另一方面,如果你想要一个'List
你需要改变这一行:
List<String> keyList = new ArrayList<String>(list.keySet());
到:
//first create the new List
List<String> keyList = new List<String>();
//iterate through the map and insert the key + ' ' + value as text
foreach(string item in list.keySet())
{
keyList.add(item+' '+list[item]);
}
return keyList;
我还没有在一段时间编写的Java这样的编译器错误可能会出现,但这个想法应该工作
如果你想遍历地图条目的键的顺序,使用一个有序图:
Map<String, Integer> map = new TreeMap<String, Integer>();
添加您的条目,并打印:
for (Map.Entry<String, Ibteger> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
你能告诉整个代码段?你的问题不清楚 – stanfordude 2015-03-31 01:32:07
帮助你理解令人困惑的家庭作业的最好的人是你的老师。我们很难知道你知道了多少,或者你的教师想要教你什么。充其量,这里的某个人可能会给你一些可以工作的代码,但是你的老师可以帮助你理解它。 – dimo414 2015-03-31 01:35:53