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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Forevery 中级黑马   /  2013-12-9 18:05  /  1024 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

何时该用hashMap何时该用treeMap?

有时候觉得要处理一个事件,两个方法都可以达到想要的效果,有点区分不开各自的优势

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

3 个回复

倒序浏览
HashMap    保证 元素唯一
   需要重写 HashCode  equals 底层数据结构是是哈希表
TreeMap    保证元素有序
底层数据结构是 二叉树
方法一  comparator
方法二 实现Comparable  用里面的compareTo();

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
hashMap底层是哈希表,存入的元素不能重复,但是没有顺序。
TreeMap底层是二叉树结构,存入的元素不能重复,但是他会按照自然顺序进行排序
实际上最大的区别是一个排序,一个不排序。根据你的需求可以来选择。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
首先:
HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
               哈希表是要保证唯一性。是通过HahCode和equals方法来确定的
TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。
                排序使用两个接口Comparable,Comparator 。
最后,可以看到你想使用的功能去确定用哪个接口。想保证唯一不重复可以是HashCode,想要排序,又想实现自己认可的排序方式就用TreeMap

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

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