边学边记——Java数据结构☞List(线性表)的介绍

发布于:2022-10-12 ⋅ 阅读:(614) ⋅ 点赞:(0)

目录

一.什么是List

1.定义 

2.关于迭代的两个接口

(1).Iterable

(2).Iterator

3.结构

二.常用方法 

三. List的使用 


一.什么是List

1.定义 

  • 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列等。
  • 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。
  • 在集合框架中,List是一个接口,继承自Collection。
  • Collection也是一个接口,继承自Iterable。
  • Iterable也是一个接口,表示实现该接口的类是可以逐个元素进行遍历的。

        站在数据结构的角度来看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列可以执行增删改查以及变量等操作。

Collection接口中规范了后序容器中常用的一些方法:

Iterable接口中中常用的一些方法:

  

查看官方文档:List的官方文档 

2.关于迭代的两个接口

(1).Iterable

具备迭代能力。

方法: 

  • iterator(小写):方法名 返回一个可以被使用的迭代器,具备迭代能力。
  • Iterator(大写):类名 返回值是一个迭代器。

(2).Iterator

迭代器。

  • hasNext:返回值是boolean类型,true代表有(合法)这个元素,false代表没有(异常)这个元素。
  • next:返回元素。

3.结构

        元素和元素之间出现线性的结构——每个元素都有一个独一无二的位置与其关联:位置(下标)。

问:一个List一共有多少个元素size() ?

答:合法位置(下标)的取值范围:[0,size)

(1).[0]:是第一个元素,也就是:头(head)。

(2).[size-1]:是最后一个元素,也就是:尾(tail/last)。

(3).除了第一个元素和最后一个元素,其余的元素:

  • 都有逻辑上的前一个元素——前驱元素。
  • 都有逻辑上的后一个元素——后继元素。

排序的能力是线性结构独有的,下标概念也是线性结构独有的,可以根据下标获取/设置元素。

二.常用方法 

方法 解释
boolean add(E e) 尾插 (放在集合的最后)e(可以插入size下标的元素)
void add(int index, E element) 将 e 插入到 index 位置
boolean addAll(Collection<? extends E> c) 尾插 c 中的元素
E remove(int index) 删除 index 位置元素(不可以删除size下标的元素)
boolean remove(Object o) 删除遇到的第一个 o
E get(int index) 获取下标 index 位置元素(元素还在集合中)
E set(int index, E element) 将下标 index 位置元素设置为 element
void clear() 清空
boolean contains(Object o) 判断 o 是否在线性表中
int indexOf(Object o) 返回第一个 o 所在下标(线性表中的元素可以重复)
int lastIndexOf(Object o) 返回最后一个 o 的下标
List<E> subList(int fromIndex, int toIndex) 截取部分 list(包含fromIndex,不包含toIndex)

三. List的使用 

  • 注意:List是个接口,并不能直接用来实例化。

        如果要使用,必须去实例化List的实现类。在集合框架中,ArrayList和LinkedList都实现了List接口。

如有建议或想法,欢迎一起讨论学习~ 


网站公告

今日签到

点亮在社区的每一天
去签到