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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java.love 中级黑马   /  2013-5-2 21:18  /  2012 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哈希表哈希函数,二叉树,链表,线性表这些在编程中都是怎么区别和应用的,链表适用于那种插入删除频繁的还是线性表适用于这种?有点搞混了。。求解答

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

正序浏览
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
ArrayList:底层用的是数组数据结构,特点:查询速度很快,但是增删稍慢
LinkedList:底层用的是链表数据结构。特点:增删很快,查询速度稍慢,线程不同步
Vector:底层是数组数据结构,线程同步,被ArrayList淘汰
Set:无序,不可以重复元素
HashSet:数据结构是哈希表,线程是非同步的,保证元素唯一性的原理是:hashCode是否相同,如果相同还会继续判断equals方法,是否为true
TreeSet:可以对Set集合中元素进行排序,底层数据结构是二叉树
保证元素唯一性依据:compareTo 方法 return 0



评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
二楼说的全面而又简洁干练,我补充点,见笑了

使用TreeSet集合,对set集合中的元素进行排序时,集合中的元素对象得实现comprable接口,要不会就会报异常。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
TreeSet集合,底层的数据结构是二叉树,它可以对set集合中的元素进行排序。链表适合于插入,删除频繁的操作,而线性表适合有查找(因为有索引,ArrayList,和Array都是数据结构中线性表的实现)。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

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