集合——继承图(2)

Java集合框架详解
  1. Collection(集合) //1.集合,就是包含多个元素     2.在java语言里面,所有的集合,都是有序的——这里的有序是指集合里的每个元素都有一个索引值!

          List(列表-集合)                                //列表-集合,可以有重复的元素(即元素的值相同!)

                 ArrayList(数组-列表-集合)          //1.数组-列表-集合(简称,数组集合),是由一种称为数组的数据结构实现的集合!  2.既然用到的数据结构是数组,那么该集合类一定有一个数据成员——这个数据成员就是表示数组的大小(即数组的最大值,说的更明白一点,就是该数组最多只能有这么多个的元素)!(:数组集合,a.由于每个元素都有一个索引值,所以查找速度快;b.由于数组的所有元素,在内存中占用的是一块连续的存储空间,如果要插入某个元素的话,必须首先要向后移动 指定索引位置 后面所有的元素,如果是删除的话,在删除某个元素之后,还要向前移动 指定索引位置 后面的所有元素,总而言之,数组的插入/删除操作速度慢!)

                 LinkedList(链接-列表-集合)         //2.链接-列表-集合(简称,链接集合),是由一种称为链表的数据结构实现的集合!  2.既然用到的数据结构是链表,而链表的特点是每个结点是由元素 + 指针组成的!(注:链表集合,a.在java语言里面,LinkedList类的每个元素也是有索引值的,这是因为Java API对链表这种数据结构进行了封装,就链表数据结构本身来说,它的元素是没有索引值的,所以查找速度慢;b.由于有了指针,在插入/删除操作的时候,只需要改变指针的指向就可以了,不需要移动一大堆的元素,所以插入/删除操作速度快!)

          Set(集-集合)                                   //集-集合,不能有重复的元素

    Map(映射)

           HashMap(哈希-映射)                     //1.键值对      2.比如,如果要添加缓存对象到HashMap里面,调用put(String key, 实体类 实例对象) 方法,即可!

           Hashtable(哈希表-映射)                  //与HashMap唯一的区别是,Hashtable是线程同步的,所以开销大!(参考:Hashtable与HashMap有什么区别?


    110207_UcxB_1791074.png


    -------------------------

    参考文章:ArrayList和LinkedList的用法区别

  2. 当然,上面说的都太理论了,具体还要结合src + Java API,才能更容易理解!




-------------------------------------------------------

  1. Collection

              List

                     ArrayList/Vector        //1.这2个类是一样的!    2.唯一的不同是,Vector是同步的(为什么是同步的呢?因为Vector的方法是同步的,见src!),而ArrayList是不同步的——同步不同步的根本区别在于,如果某个类的方法是同步的,那么它的数据就是线程安全的;但是同步方法的开销是巨大的,所以用到集合时一般不使用Vector!

                     LinkedList


参考:Java中Vector和ArrayList的区别


转载于:https://my.oschina.net/u/1791074/blog/280018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值