1.集合的概述
(1)为什么要学习集合?
数组可以保存多个对象,但在无法确定需要保存多少个对象时,数组将不再使用,因为数组的长度不可改变。
因此java中提出了集合,集合可以存储任意类型的对象,并且长度不并
(2)集合的定义:java中集合就像一个容器,专门用来存储java对象。
注:集合对象可以是任意的数据类型,并且长度可变。这些集合都位于java.util包中,在使用时一定要注意导包的问题
(3)集合的分类
a: 单列集合Collection:在添加数据的时候,一次只能添加一个数据。
b:双列集合Map:在添加数据的时候一次可以添加一对数据
2.单列集合
(1)单列集合的Collection接口------通用的方法
boolean add(Object o)
向集合中添加一个元素
boolean addAll(Collection c)
将指定集合c中的所有元素添加到该集合中
void clear()
删除该集合中的所有元素
boolean remove(Object o)
删除该集合中指定的元素
boolean removeAll(Collection c)
删除该集合中包含指定集合c中的所有元素
boolean isEmpty()
判断该集合是否为空
boolen contains(Object o)
判断该集合中是否包含某个元素
boolen containsAll(Collection c)
判断该集合中是否包含指定集合c中的所有元素
int size()
获取该集合个数
(2)List接口
*定义:List接口继承自Collection接口,是单列集合的一个重要分支,
特点:
*List集合中允许出现重复元素,所有的元素是以一种线性方式进行存储的,在程序中通过索引来访问集合中的元素,
*List集合存储有序,即元素的存入顺序和取出顺序一致
List接口常用的方法(只有在List接口的实现类才可用)
void add(int index,Object element)
将元素element插入在List集合的指定索引位置
bollean addAll(int index,Collection c)
将集合c包含的所有元素插入到List集合的指定索引位置
Object get(int index)
返回集合索引index处的集合
Object remove(int index)
删除index索引处的元素
Object set(int index,Object element)
将索引index处元素替换成element元素 并将替换后的元素返回
int indexOf(Object o)
返回对象o在List集合中首次出现的位置索引
int lastIndexOf(Object o)
返回对象o在List集合中最后一次出现的位置索引
Object[] toArray()
将集合元素转换为数组
(3)ArrayList集合
说明:*ArrayList是List接口的一个实现类,它是程序中最常见的一种集合
*ArrayLis内部的数据存储结构是数组形式
特点:
由于ArrayList的存储结构,在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作,在遍历和查找元素时显得非常高效。
(4)List接口中的LinkedList集合
* LinkedList是List接口的一个实现类
* LinkedList内部含有两个Node类型的First和last属性的双向循环链表结
特点:
* 由于LinkedList的存储结构,LinkedList集合对于元素的遍历和查找效率较低,
* LinkedList集合对于元素的增删操作表现出很高的效率
* 由于ListkedList继承了List接口方法,所以Collection接口中的方法ListkedList都可用