Java Map 排序定义
2016-06-08 08:49
567 查看
1、一般的map定义:
Map<Key, Object> map = new HashMap<Key, Object>();
这种map的定义,里面的数据是乱序的,没有顺序规则可依;
2、保持有序的map定义:
Map<Key, Object> map = new LinkedHashMap<Key, Object>();
链表结构的HashMap,是有序的,put进去的数据顺序是怎样,出来的顺序也是那样,不会打乱里面数据的顺序;
但是需要注意的一点是:如果put进去的key是存在相同值的话, 用LinkedHashMap是会乱序的,而且出来的数据也不对,对于重复值的存储,最好先合并重复的key,再将相应的key和object放进去。
3、自定义顺序的map定义:
Map<Key, Object> map = new TreeMap<Key, Object>();
这种map的顺序可自定制,例如倒序:
Map<Key, Object> map = new TreeMap<Key, Object>();
map.descendingKeySet();
附Map遍历方法:
/* 第一种: entryset只遍历一次:它把key和value放到entry */
/* 第二种: keySet实际遍历了2次:
转为iterator时候一次;
取key对应value又一次。*/
Map<Key, Object> map = new HashMap<Key, Object>();
这种map的定义,里面的数据是乱序的,没有顺序规则可依;
2、保持有序的map定义:
Map<Key, Object> map = new LinkedHashMap<Key, Object>();
链表结构的HashMap,是有序的,put进去的数据顺序是怎样,出来的顺序也是那样,不会打乱里面数据的顺序;
但是需要注意的一点是:如果put进去的key是存在相同值的话, 用LinkedHashMap是会乱序的,而且出来的数据也不对,对于重复值的存储,最好先合并重复的key,再将相应的key和object放进去。
3、自定义顺序的map定义:
Map<Key, Object> map = new TreeMap<Key, Object>();
这种map的顺序可自定制,例如倒序:
Map<Key, Object> map = new TreeMap<Key, Object>();
map.descendingKeySet();
附Map遍历方法:
/* 第一种: entryset只遍历一次:它把key和value放到entry */
Map map = getMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); }//高效,使用此种方式
/* 第二种: keySet实际遍历了2次:
转为iterator时候一次;
取key对应value又一次。*/
Map map = getMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { Object key = iter.next(); Object val = map.get(key); }//效率低
相关文章推荐
- Eclipse 中双击变量不高亮 切换变量不高亮 解决
- RxJava隔多少时间跳转页面
- MyEclipse_ServerView报错解决方法
- Myeclipse如何修改字体大小
- Java中两个String数组进行比较
- [置顶] Java并发编程与技术内幕:线程池深入理解
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
- 8张图理解Java
- 学习 Java 8 - 函数式接口 Lambda
- Java 8 Lambda
- JAVA使用继承还是组合
- Java设计模式(二) 工厂方法模式
- Java设计模式(三) 抽象工厂模式
- Java设计模式(五) 多态的极致应用——组合模式
- xml的SAX解析
- 使用Springmvc, Mybatis 重构 JPetStore
- java进行DOM解析
- Activiti入门教程之eclipse插件(一)
- "冒泡排序"算法-图文代码教你轻松简单理解-java编程
- java中List集合的比较