集合体系结构

b站课程原地址:https://www.bilibili.com/video/BV18J411W7cE?p=220

1 Collection

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。

实现类才可以创建并实例化对象。

Collection集合概述和使用

  • Collection是单列集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素;
  • JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
  • 创建Collection集合的对象:使用多态的方式;具体的实现类ArrayList

Collection集合的常用方法

IDEA:View-Tool Windows-Structures (Alt+7):看到所有类信息

Collection集合的遍历

Iterator:迭代器,集合的专用遍历方式。

使用多态的方式返回对象;

2 List

List集合概述和特点

  • 有序集合(序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜素列表中的元素
  • 与Set集合不同,列表通常允许重复的元素
  • 有序:存储和取出的元素顺序一致;
  • 可重复:存储的元素可以重复

List集合特有方法

并发修改异常

ConcurrentModificationException

迭代器遍历的过程中,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致;

解决方法:用for循环遍历,然后用集合对象做对应的操作

列表迭代器

  • ListIterator:列表迭代器;通过List集合的listIterator()方法得到,它是List集合特有的迭代器。
  • 用于允许程序员沿任意方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
  • ListIterator的常用方法:
    • E next():返回迭代中的下一个元素
    • boolean hasNext():如果迭代具有更多元素,则返回true
    • E previous():返回列表中的上一个元素
    • boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
    • void add(E e):将指定的元素插入列表

    

    列表迭代器的 add() 方法会将 实际修改值赋值给预期修改值,所以不会抛出并发修改异常。

增强for循环

  • 增强for:简化数组和Collection集合的遍历
  • Collection继承了Iterable接口:实现此接口的类允许对象成为增强型for语句的目标
  • 是JDK5之后出现的,内部原理是一个Iterator迭代器

 

3 数据结构之栈和队列

数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。

通常情况下,精心选择的数据结构可以带来更高的运行或存储效率。

4 List集合

  • List集合常用子类:ArrayList,LinkedList
  • ArrayList:List集合的可调整大小的数组实现;查询快、增删慢
  • LinkedList:List集合的链表实现;查询慢、增删快

LinkedList集合的特有功能  (其底层实现是链表,有一些结点处理方法)

猜你喜欢

转载自blog.csdn.net/mugeit/article/details/112850835