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有什么区别?)
-------------------------
当然,上面说的都太理论了,具体还要结合src + Java API,才能更容易理解!
-------------------------------------------------------
Collection
List
ArrayList/Vector //1.这2个类是一样的! 2.唯一的不同是,Vector是同步的(为什么是同步的呢?因为Vector的方法是同步的,见src!),而ArrayList是不同步的——同步不同步的根本区别在于,如果某个类的方法是同步的,那么它的数据就是线程安全的;但是同步方法的开销是巨大的,所以用到集合时一般不使用Vector!
LinkedList