黑马程序员技术交流社区
标题:
HashMap/TreeMap/HashSet/TreeSet
[打印本页]
作者:
郑昌奋
时间:
2013-3-21 15:41
标题:
HashMap/TreeMap/HashSet/TreeSet
本帖最后由 郑昌奋 于 2013-3-21 20:35 编辑
HashMap/TreeMap/HashSet/TreeSet在什么情况下会优先考虑选择他们的呢?
作者:
Walking Walking
时间:
2013-3-21 16:20
根据你的实际需求啊
Set:无序,不可以重复元素。
HashSet:数据结构是哈希表。线程是非同步的。
TreeSet:可以对Set集合中的元素进行排序。
Map集合:该集合存储键值对。保证键的唯一性。
HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。
TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。
作者:
wangjinyu501
时间:
2013-3-21 16:21
那要看你的开发需要了,根据需求选择相应的工具
作者:
qintoko
时间:
2013-3-21 16:28
TreeSet
TreeSet是有序的(必须实现Comparable接口),它会把元素排序,但如果元素没有自然顺序,那就出错。
HashSet特性
不同步,即线程不安全的
无序
无重复元素(所有Set都是这个特性)
底层使用哈希表结构
HashMap特性
底层使用哈希表结构
因为使用哈希表,所有键元素类型必须重写equals()和hashCode()方法
TreeMap的特性
底层使用二叉树结构;
有序!使用键类型的自然顺序,或者TreeMap的比较器排序;
使用TreeMap要求键类型有自然顺序,或者给TreeMap提供比较器;
总的来说,默认用HashMap和HashSet,需要顺序的时候用Tree
作者:
郑昌奋
时间:
2013-3-21 20:34
徐盼盼 发表于 2013-3-21 16:20
根据你的实际需求啊
Set:无序,不可以重复元素。
谢谢您的讲解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2