A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵晓波 黑马帝   /  2013-1-11 00:42  /  1594 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map存储的对象遍历打印出来的是有序的吗?如果有是按什么排序的呢????请各位大侠指点!!!!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

5 个回复

倒序浏览
java中的Map都是以键值对(key<--->value)的形式存储的,没有顺序。比如,遍历时若利用keyset,可以根据key值得到values。

如果用LinkedHashMap,存储是按照你插入数据的先后顺序;
如果用TreeMap,默认是按键的升序排列的。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
hashMap是无序的;TreeSet有序,默认按照元素的自然顺序。可以定义排序规则
回复 使用道具 举报
Map是无序的。通过iterger遍历,输出相应的键值。
回复 使用道具 举报
Map内部有两个属性:key(键)和value(值)。它们主要是保证键的,
题外话(Set集合底层也是用的Map,是把元素存在Map的键上,值是系统分配的,你看不见)
下面是我记的笔记跟你分享下:
HashMap特性
1.底层使用哈希表结构
2.无序!
3.线程不安全的!
4.对于常用方法可以保证稳定的性能!
5.因为使用哈希表,所以键元素类型必须重写equals()和hashCode()方法
HashMap
           它要求键元素类型必须重写hashCode()和equals()来保证唯一性,如果hashCode()相等,再使用equals()比较,
           如果hashCode()不相等,就        不再使用equals()比较。
TreeMap的特性
1.底层使用二叉树结构;
2.有序!使用键类型的自然顺序,或者TreeMap的比较器排序;
3.使用TreeMap要求键类型有自然顺序,或者给TreeMap提供比较器;
TreeMap
            要求元素类型有自然顺序,只要实现了Comparable<T>接口的类就有了自然顺序,必须实现接口的compareTo()方法进行比较,
            写不完整的compareTo()容易造成TreeSet出问题。
       如果元素没有自然顺序比较,可以创建TreeSet()时提供一个比较器,即:Comparator接口。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
arno942 发表于 2013-1-12 01:36
Map内部有两个属性:key(键)和value(值)。它们主要是保证键的,
题外话(Set集合底层也是用的Map,是把 ...

谢谢啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马