黑马程序员技术交流社区

标题: 集合框架中的哈希函数 [打印本页]

作者: java.love    时间: 2013-5-2 21:18
标题: 集合框架中的哈希函数
哈希表哈希函数,二叉树,链表,线性表这些在编程中都是怎么区别和应用的,链表适用于那种插入删除频繁的还是线性表适用于这种?有点搞混了。。求解答
作者: 朱安柱    时间: 2013-5-2 22:24
TreeSet集合,底层的数据结构是二叉树,它可以对set集合中的元素进行排序。链表适合于插入,删除频繁的操作,而线性表适合有查找(因为有索引,ArrayList,和Array都是数据结构中线性表的实现)。
作者: 吴建昆    时间: 2013-5-2 23:58
二楼说的全面而又简洁干练,我补充点,见笑了

使用TreeSet集合,对set集合中的元素进行排序时,集合中的元素对象得实现comprable接口,要不会就会报异常。
作者: 丁岩    时间: 2013-5-3 14:44
ArrayList:底层用的是数组数据结构,特点:查询速度很快,但是增删稍慢
LinkedList:底层用的是链表数据结构。特点:增删很快,查询速度稍慢,线程不同步
Vector:底层是数组数据结构,线程同步,被ArrayList淘汰
Set:无序,不可以重复元素
HashSet:数据结构是哈希表,线程是非同步的,保证元素唯一性的原理是:hashCode是否相同,如果相同还会继续判断equals方法,是否为true
TreeSet:可以对Set集合中元素进行排序,底层数据结构是二叉树
保证元素唯一性依据:compareTo 方法 return 0




作者: 黄玉昆    时间: 2013-5-3 22:15
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2