Java数据结构:集合 Collection

Collection

数组和集合的区别

  1. 数组只能存储一个数据类型 集合可以通过泛型存储多种数据类型
  2. 数组可以存储基本数据类型,集合只能存储引用数据类型,存储的实质是引用数据的地址
  3. 数组是定长的,集合可以动态扩容
  4. 数组是一段连续的内存空间,集合是否连续取决于集合的存储结构

集合类层次结构

  • 相关类与接口都在java.util.包下
    Java数据结构:集合 Collection

Collection接口及其子接口

  • 存储单个对象结合的顶层接口
  1. List子接口—元素有序,而且允许重复
  2. Set子接口—元素无序,而且不允许重复
  3. SortSet子接口—是Set的子接口为Set增加排序功能 TreeSet为其实现类

Collection接口中的方法

  1. 增加

    boolean add(E e) //在集合尾部添加元素 常用
    boolean addAll(Collection c) //把一个集合的所有元素添加到另外一个集合中

  2. 删除

    void clear() //删除全部元素
    boolean remove(Object o) //删除指定元素 常用
    boolean removeAll(Collection c) //删除指定集合中的全部元素

  3. 其它方法

    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中的元素都是无序的,没有新增的方法