Java学习笔记:List接口与ArrayList类基础

线性表与顺序表

线性表

线性表

如图所示,这种具有"一对一"关系存储的结构可称为线性存储结构,具体又可分为顺序表和链表

顺序表

顺序表是一种类似数组的存储结构,元素有序的存储在内存中

顺序表

链表

链表的每个元素存储基本数据,同时也会存储一个指向下一个元素的"指针"

链表

List接口

List 接口继承了 Collection 接口,Collection 接口继承Iterable接口

List

Iterable 是迭代器,提供了对集合类 for-each 的支持,实现该接口的类进行逐个元素的遍历

Collection规范了一些方法,JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 SetList)实现

常用方法

List 提供的方法有

List方法

使用:要注意的是,List 是一个接口,不能直接实例化,使用时要实例化实现List的类,如:ArrayList、LinkedList等

List中的方法很多,但常用的方法如下表:

方法摘要
void add(E e)在列表的末尾添加指定的项
void add(int index, E e)在列表中索引指示的位置添加指定的项
void addAll(Collection<? extends E> c)将指定列表中的所有元素添加(尾插)到此集合
void clear()删除列表中所有元素
boolean contains(Object o)如果此列表包含指定的元素,则返回 true
boolean isEmpty()如果此列表不包含元素,则返回 true
boolean removeAll()删除指定列表中包含的所有此集合的元素
boolean remove(Object o)从列表中删除第一个指定元素(若存在)
int size()返回列表中的元素数
E get(int index)返回此列表中 index 位置的元素
E set(int index, E e)用指定的元素替换此列表中 index 位置的元素
int lastIndexOf(Object o)返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1
int IndexOf(Object o)返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1
List subList(int fromIndex, int toIndex)截取 fromIndex 至 toIndex 部分的列表

ArrayList

ArrayList是java.util包下的一个类,实现了List, RandomAccess, Cloneable, Serializable接口,其底层是一段连续空间,支持动态扩容的顺序表

ArrayList结构

实现的接口的作用为:

RandomAccess:表明ArrayList支持随机访问

Cloneable:表明ArrayList支持clone

Serializable:表明ArrayList支持序列化

ArrayList不是线程安全的,在单线程中可以使用

ArrayList的使用

ArrayList源码中提供的构造方法有三个,分别是

构造方法摘要
ArrayList创建一个初始容量为10的列表
ArrayList(int x)创建一个初始容量为x的列表
ArrayList(Collection<? extends E> c)利用集合c创建一个列表
List<Integer> list1 = new ArrayList<>();//创建一个空列表
List<Integer> list2 = new ArrayList<>(20);//创建一个容量为20的空列表
List<Integer> list3 = new ArrayList<>(list1);//根据list1创建list3,两者内容相同
List list4 = new ArrayList();//创建列表时应避免省略类型,避免读取时类型转换出错

常用方法

ArrayList提供的常用方法有:

方法摘要
E get(int index)返回此列表中指定位置上的元素
E set(int index, E element)用指定的元素替代此列表中指定位置上的元素
int size()返回此列表中的元素数
boolean isEmpty()如果此列表中没有元素,则返回 true
void clear()移除此列表中的所有元素
boolean add(E e)将指定的元素添加到此列表的尾部
void add(int index, E element)将指定的元素插入此列表中的指定位置
E remove(int index)移除此列表中指定位置上的元素
boolean remove(Object o)移除此列表中首次出现的指定元素(若存在)
int indexOf(Object o)返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1
boolean contains(Object o)如果此列表中包含指定的元素,则返回 true

本文的主要目的是充当学习笔记,同时强化学习效果,且兼有分享所学知识之意,欢迎批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值