面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类
集合与数组的区别
长度区别:数组的长度是固定的而集合的长度是可变的
存储数据类型的区别:数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型
内容区别:数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素
集合继承体系图
Collection集合
添加功能
- boolean add(Object obj):添加一个元素
- boolean addAll(Collection c):添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
删除功能 - void clear():移除所有元素
- boolean remove(Object o):移除一个元素
- boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素,如果没有交集元素 则删除失败 返回false
判断功能 - boolean contains(Object o):判断集合中是否包含指定的元素
- boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
把集合转化成数组
迭代器
List
元素有序,并且每一个元素都存在一个索引.元素可以重复
List集合的特有功能概述
- void add(int index,E element): 在指定索引处添加元素
- E remove(int index):移除指定索引处的元素 返回的是移除的元素
- E get(int index):获取指定索引处的元素
- E set(int index,E element):更改指定索引处的元素 返回的而是被替换的元素
List的三个子类的特点
ArrayList :
- 底层数据结构是数组,查询快,增删慢
- 线程不安全,效率高
Vector: - 底层数据结构是数组,查询快,增删慢
- 线程安全,效率低
LinkedList: - 底层数据结构是链表,查询慢,增删快
- 线程不安全,效率高