一、集合的由来
1,对象用于封装特有数据,对象用什么存呢?当对象数量较多,而且个数不确时,就可以用集合来存储。也就是说集合的产生是为了存储对象。
数组也可以用来存储对象,为什么不用数组呢?
因为数组的长度是固定的,当对象个数不确定时,就无法用数组来存储。
2,集合与数组的区别:
a,数组可以存储基本数据类型,也可以存储对象,而集合只能用来存储对象,不可以存储基本数据类型。
b,集合的长度是可变的,而数组的长度是固定的。
二、集合框架
1,每一个集合存储对象的方式不尽相同,根据某些特定需求而定的。集合因为内部的数据结构不同,就会产生多种不同的具体容器,这些容器不断向上抽取就形成了集合
框架。框架的顶层接口是Collection。
Collection
|----List:有序,存入和取出的顺序一致,元素都具有索引和角标,元素可以重复
|----Vector:内部是数组数据结构,同步的,查询和增删都慢。
|----ArrayList:内部是数组数据结构,非同步的,替代了Vector,查询快,增删慢。
|----LinkedList:内部是链表数据结构,非同步的。查询慢,增删快。
|----Set:无序,存入和取出的顺序通常不一致,元素不可以重复
|----HashSet:内部数据结构是哈希表,不同步。(元素唯一性:依靠hashCode()和equals()方法,来保证元素的唯一性)
|----LinkedHashSet:保证元素的唯一性,同时还是有序的
|----TreeSet:内部结构为二叉树,可以对集合中的元素进行排序,不同步。(元素唯一性:根据比较方法的返回结果是否是0,是0,就是相同元素,不存)
|
|