关于Iterator遍历取值顺序的问题

Map<Integer,String>map=newHashMap<Integer,String>();map.put(1213,"A");map.put(2324,"B... Map<Integer, String> map=new HashMap<Integer, String>();
map.put(1213, "A");
map.put(2324, "B");
map.put(35436, "C");

Set<Integer> textKey = map.keySet();// 集合
Iterator<Integer> keyIte = textKey.iterator();
int i=0;
while (keyIte.hasNext())
{
Integer keyStr = keyIte.next();
System.out.println("that is"+" "+keyStr+" "+i);
i++;
}
输出结果是:
that is 35436 0
that is 2324 1
that is 1213 2
遍历的顺序和输入的顺序正好相反,请问是怎么回事?
展开
 我来答
jun_frank
推荐于2018-03-19
知道答主
回答量:22
采纳率:0%
帮助的人:17.9万
展开全部
hashmap类是散列映射并不保证它的元素顺序
如果你又想用Map又想保持顺序,可以使用LinkedHashMap
它和HashMap一样,但是可以保证插入顺序,但是这样也增加了一点点开销,效率没有hashmap高
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式