
我用的for(Map.Entry<String, Integer> m:temp.entrySet())进行的遍历,确定是随机的?我遍历整个表
2个回答
展开全部
是随机输出的。
我写了个测试程序你可以看一下:
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是无序的
我写了个测试程序你可以看一下:
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值相关。。。。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行代码 结果立马就知道了
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 排序。知道结论了吧?
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 排序。知道结论了吧?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询