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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

集合体系:
a.单列集合Collection
        List:元素有序、包含重复元素、可使用索引
                ArrayList:底层数据结构是数组结构,增删慢,查询快。
                LinkedList:底层是链表数据结构,增删快,查询慢.
                Vector:底层数据结构是数组结构,已被ArrayList替代。               

        Set:不包含重复元素
                HashSet:通过Hash表结构判断元素唯一性。
b.数组数据结构
   1.为什么数组查询快?
    因为数组中有索引直接利用get(int index)直接取元素
   2.为什么增删慢?
      数组角标 0  1  2  3  4
      元素     a  b  c  d  e
      删除c:   a  b  d  e  null

      结论:每删除一个元素,删除的元素后面的元素都要逐个向前移动一位
           假如要删除的元素后面有10000个元素,这10000个元素都需要向前移动一位,导致效率低下

      数组角标 0  1  2  3  4
      元素     a  b  c  d  e
   
    添加之前开辟一个长度为6的数组:
                   0  1  2  3  4  5
     元素          a  b  c  d  e  
   在2位置添加f:   a  b  f  c  d  e

     如果添加的元素已经超过数组的长度,新开辟一个数组对象,将原有数组的元素拷贝到新数组中,在添加元素
     如果数组长度不够用,我就要new新数组,开辟数组和拷贝元素都导致效率低下
c.链表数据结构
   1.为什么链表查询慢?
     每次查找都需要从链头开始比较,效率比较低
   2.为什么链表增删块?
     因为每次删除不需要移动大量元素,只需要改变元素的记录的地址值就行了

5 个回复

正序浏览

map 今天才讲  嘿嘿嘿  不好意思
回复 使用道具 举报
yin12310 发表于 2016-7-23 00:02
楼主 漏了双列集合 并且漏了线程安全,可不可以重复等等问题

我们刚开始学 而且只讲了一天的内容  嘿嘿嘿  大神不错呦  
回复 使用道具 举报
map被楼主吃了
回复 使用道具 举报
楼主 漏了双列集合 并且漏了线程安全,可不可以重复等等问题
回复 使用道具 举报
小尾巴向大家结识一些浅显的集合知识    还请大家多多补充  有大神最好说一下集合的重点
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马