日期:2014-05-20  浏览次数:20517 次

为什么java map的输出顺序是这样的?
package two_three;
import java.util.*;
public class testmap {
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String, Object> test = new HashMap();
test.put("tt1", 101);
test.put("tt4", 121);
test.put("tt2", 121);
test.put("tt3", 131);
test.put("tt5", 121);
}
}

程序运行后输出的顺序是: 
{tt5=121, tt4=121, tt1=101, tt3=131, tt2=121}
没太看懂怎么是这个顺序??求解谢谢了

------解决方案--------------------
因为是HashMap,此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间!
------解决方案--------------------
Map里面的元素都是键值对,它是根据key来取value的,里面的元素是没有顺序的。
------解决方案--------------------
这说明说明呢?HashMap是无序的呗,LinkedHashMap才是有序的
------解决方案--------------------


引用:
因为是HashMap,此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间!

+1
HashMap 和 HashSet是不保证顺序的
TreeMap 和 TreeSet是自动排序的
list是按照添加顺序的
看看API就知道了