我是java的新手,我正在处理一个问题,我需要按照输入的顺序从HashMap
输出元素。我了解HashMap
无法做到这一点,LinkedHashMap
专门用于维护此顺序。我在我的问题中实现了LinkedHashMap
,但输出没有跟随输入序列。请帮助我。请找到我的问题和下面的代码。
用户输入名称数量n
和人名(将姓名添加到名称为key
的地图中,并将他/她所属的团队编号添加为{{ 1}})。我应该为用户输入的名称打印相应的value
。
输入:4
极光
飞象
爱丽儿
班比
输出:应为values
- 来自[1,3,1,2]
但我从以下程序获得的输出是list
我试图弄清楚我的错误是什么,但徒劳无功。对此有所帮助。感谢。
[1,1,2,3]
答案 0 :(得分:0)
您希望这些数字按照您查找的顺序显示。这当然与它们的存储顺序无关。 e.g。
例如,如果您要求Aurora
Dumbo
Alice
和Bolt
,则您要扫描整个集合,以便将这些字词添加到集合中以查找匹配项。虽然这是低效的,但如果这是您所期望的,它可以起作用。
但是,您似乎希望它们符合您输入单词的顺序。实际上,这可以更简单,更高效,因为您可以使用Map.get(String)
您可以使用此
替换两个循环// add the lookup value in the order the words are entered
// not the order they appear in the original map.
for(int i = 0; i < n; i++) {
String name = in.next();
l.add(map.get(name));
}