我用的for(Map.Entry<String, Integer> m:temp.entrySet())进行的遍历,确定是随机的?我遍历整个表

应该是从上到下按hash值吧?... 应该是从上到下按hash值吧? 展开
 我来答
Apple林
2012-07-16 · TA获得超过2093个赞
知道小有建树答主
回答量:895
采纳率:66%
帮助的人:567万
展开全部
是随机输出的。
我写了个测试程序你可以看一下:
package dataStructure;
import java.util.*;
public class TestMap {
public static void main(String[] args) {
Map<String,Integer> hashMap=new HashMap<String,Integer>();
hashMap.put("Smith", 30);
hashMap.put("Cool", 29);
hashMap.put("Lewis", 31);

System.out.println(hashMap);
}
}

输出结果:
{Smith=30, Lewis=31, Cool=29}

你可以看到这个跟key或者value的顺序都没关系的,java书上又讲到的,只有LinkedHashMap是有序的输出,HashMap是无序的
追问
我不需要跟key值相关,我需要跟key的hash值相关。。。。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Zoujy1022
2012-07-16 · TA获得超过1121个赞
知道小有建树答主
回答量:803
采纳率:0%
帮助的人:640万
展开全部
运行代码 结果立马就知道了
public static void main(String[] args) throws IOException {
Map<String,String> map = new HashMap<String,String>();
map.put("a", "aasdf");
map.put("3", "fffff");
map.put("2", "jljlj");
for(Entry<String, String> e : map.entrySet()){
System.out.println("key: "+ e.getKey()+" hashCode: "+ e.getKey().hashCode());
}
}

输出:
key: 3 hashCode: 51
key: 2 hashCode: 50
key: a hashCode: 97
可见 没有按照key的hashcode 排序。知道结论了吧?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式