黑马程序员技术交流社区

标题: Collection中List与Set怎么理解? [打印本页]

作者: 郑庆伟    时间: 2012-7-7 18:19
标题: Collection中List与Set怎么理解?
本帖最后由 郑庆伟 于 2012-7-7 19:03 编辑

毕老师的视频中讲到Collection
                                 |-List元素是有序的
                                 |-Set元素是无序的(存入和取出不一定一致)
这里面有序毕老师是讲的怎么放进去就怎么取出来我不太理解?
毕老师讲的是无序的意思是存入和取出不一定一致,那么不一定一致怎么理解,如果一致了不是有序了吗,那么Set中的”不一定“怎么去理解?
它包含有两个意思可能一致有可能不一致。一致了不就符合List的特点了吗?

作者: 康大玮    时间: 2012-7-7 18:34
设计到底层数据结构问题,不知到你学过没有,我也马马虎虎,而且哈系表没学过。
|--List:元素是有序的,元素可以重复,因为该集合体系有索引。底层 其实应该都是数组(链表也是数组)
       |--ArrayList;底层的数据结构是数组。
       |--LinkedList:底层使用数据结构是链表。
       |--Vector:底层数据结构是数组。

|--Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复
       |--HashSet:底层是哈系表
       |--TreeSet:可以对Set集合的元素进行排序,底层是二叉数。
                  TreeSet排序的第一种方式:     让元素自身具备比较性。
   
然后 你谷歌或者度娘哈系表吧!

作者: 郑庆伟    时间: 2012-7-7 18:37
底层数据结构我没学过,就是这个概念在我写下来的时候,突然感觉有些疑惑?这个解释起来可能比较麻烦.
作者: yulu53    时间: 2012-7-7 18:37
存入Set的元素 会进行默认或定制排序,比如你往set中放 5,2,1.
5是第一个放的
但输出却是1,2,5发现5被排到最后了

List集合中每个元素都有对应的索引(类似数组)
放入 5,2,1 输出后还是 5,2,1
不知道这么说,你懂不懂

作者: 郑庆伟    时间: 2012-7-7 18:53
看你的插入的图我就明白了毕老师讲的有序跟无序的概念了。
作者: 郑庆伟    时间: 2012-7-7 18:56
List与Set数据结构不一样,List是每个元素都有一个索引,而Set是调用hashCode方法进行判断然后再进行存储。




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