单列集合

集合框架

集合框架.png

1.Java类中集合的关系图

Collection_02.png

2.集合的概述

  • 在程序中可以通过数组来保存多个对象,但在某些情况下开发人员无法预先确定需要保存对象的个数,此时数组将不再适用,因为数组的长度不可变。
  • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。

数组和集合类同是容器,有何不同?

Collection_03.png

集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

3.Collection接口概述

  • Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List和Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有ArrayList和LinkedList,Set接口的主要实现类有HashSet和TreeSet。

  • Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

Collection_04.png

4. Collection接口成员方法

4.1 添加功能

方法声明 功能描述
add() 添加元素
addAll() 添加一个集合的元素

4.2 删除功能

方法声明 功能描述
remove() 删除元素
removeAll() 删除一个集合的元素
clear() 清空集合

4.3 判断功能

方法声明 功能描述
contains() 判断集合是否包含指定的元素
containsAll() 判断一个集合是否包含一个集合的元素
isEmpty() 判断集合是否为空

4.4 获取功能

方法声明 功能描述
size() 获取集合的长度
retainAll() 取两个集合的交集

4.5 其他功能

方法声明 功能描述
toArray() 把集合转成数组,可以实现集合的遍历
iterator() 迭代器,集合的专用遍历方式

Collection_05.png

5. List接口概述

  • 有序的 collection(也称为序列/线性表)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与 set 不同,列表通常允许重复的元素。

  • List接口是Collection接口的一个子接口,List集合的特性是:有序,可重复,元素有索引,List接口有三个实现类

  1. ArrayList:底层数据结构是数组,查询快,增删慢,非线程安全,效率高,数据增长为原来的50%
  2. Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,数据增长为原来的一倍
  3. LinkedList:底层数据结构是链表,查询慢,增删快,非线程安全,效率高

5.1 Vector

底层数据结构是数组,查询快,增删慢,线程安全,效率低。

Vector类特有功能

  • public void addElement(E obj):添加元素
  • public E elementAt(int index):根据索引获取元素
  • public Enumeration elements():获取所有的元素

5.2 ArrayList

底层数据结构是数组,查询快,增删慢,线程不安全,效率高。

5.3 LinkedList

与ArrayList基于数组结构不同的是,LinkedList是基于链表的结构,因此具有链表特有的功能

方法声明 功能描述
addFirst() 在集合的第0个位置添加元素
addLast() 在集合的最后位置添加元素
getFirst() 获取集合的第0个元素
getLast() 获取集合的最后一个元素
removeFirst() 删除集合的第0个元素
removeLast() 删除集合的最后一个元素
posted @ 2021-07-25 19:26  蔚蓝的海洋  阅读(86)  评论(0编辑  收藏  举报