码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap与TreeMap的区别

时间:2015-12-10 11:00:20      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

首先描述下什么是Map。
在数组中我们是通过数组的下标来对其内容进行索引的,而在Map中我们是通过对象对对象进行索引的,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平常说的键值对。
 

HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 

 

两种常规Map性能 
HashMap:适用于在Map中插入、删除和定位元素。 
TreeMap:适用于按自然顺序或自定义顺序遍历键(key)。 

 
举例TreeMap的顺序定义:
TreeMap<File, Boolean> treeMap = new TreeMap<File, Boolean>(new Comparator<File>() {
            
            //重写这个比较器方法,来自定义我们key的排,默认是自然排序(一般是升序)
            @Override
            public int compare(File o1, File o2) {    //小于0升序,大于0降序
                 String code1 = getCompanyCode(o1);
                 String code2 = getCompanyCode(o2);
                 if (StringUtils.isEmpty(code1) || StringUtils.isEmpty(code2))
                      return code1.compareTo(code2);
                 else
                      return code1.compareTo(code2);
                }
   });

  

HashMap与TreeMap的区别

标签:

原文地址:http://www.cnblogs.com/chenkaideng/p/5035218.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!