Java数据结构:集合 Collection
Collection
数组和集合的区别
- 数组只能存储一个数据类型 集合可以通过泛型存储多种数据类型
- 数组可以存储基本数据类型,集合只能存储引用数据类型,存储的实质是引用数据的地址
- 数组是定长的,集合可以动态扩容
- 数组是一段连续的内存空间,集合是否连续取决于集合的存储结构
集合类层次结构
- 相关类与接口都在java.util.包下
Collection接口及其子接口
- 存储单个对象结合的顶层接口
- List子接口—元素有序,而且允许重复
- Set子接口—元素无序,而且不允许重复
- SortSet子接口—是Set的子接口为Set增加排序功能 TreeSet为其实现类
Collection接口中的方法
-
增加
boolean add(E e) //在集合尾部添加元素 常用
boolean addAll(Collection c) //把一个集合的所有元素添加到另外一个集合中 -
删除
void clear() //删除全部元素
boolean remove(Object o) //删除指定元素 常用
boolean removeAll(Collection c) //删除指定集合中的全部元素 -
其它方法
int size() //获取长度 常用
boolean isEmpty() //判断集合的长度是否为0 常用
boolean contains(Object o) //判断集合中是否存在指定元素 常用
Iterator iterator() //返回集合上的迭代器 常用
Object[] toArray() //集合 --> 数组 集合 --> 数组 使用Arrays类的asList()方法
三. List接口中新增的方法
List中的元素都是有序的,新增了根据位置索引操作的方法
void add(int index, E element) //在列表的指定位置插入指定元素
E remove(int index) //删除列表中指定位置的元素,并返回该元素
void set(int index, E element) //修改列表中指定位置的元素
E get(int index) //返回指定位置的列表元素,索引从0开始 常用
int indexOf(Object o) //返回首次出现指定元素的位置
int lastIndexOf(Object o) //返回最后一次出现指定元素的位置
List subList(int fromIndex, int toIndex) //返回指定范围的子集合
ListIterator listIterator() //返回列表上的增强型迭代器,支持反序遍历
四. Set接口
Set中的元素都是无序的,没有新增的方法