Java基础 - 集合框架之List

大家好,我是大明沙利,今天就来系统的看一下List。
只讲能用到的,花里胡哨的没有。欢迎白嫖。

*注:重点已经标注出来

List中主要有ArrayList、LinkedList两个实现类;

今天我们主要讲解最常用的ArrayList(用的最多)。

一,API解释

ArrayList底层通过数组实现,随着元素的增加而动态扩容。

ArrayList是Java集合框架中使用最多的一个类,是一个数组队列,线程不安全集合。

它继承于AbstractList,实现了List, RandomAccess, Cloneable, Serializable接口。

  1. ArrayList实现List,得到了List集合框架基础功能;
  2. ArrayList实现RandomAccess,获得了快速随机访问存储元素的功能,RandomAccess是一个标记接口,没有任何方法;
  3. ArrayList实现Cloneable,得到了clone()方法,可以实现克隆功能;
  4. ArrayList实现Serializable,表示可以被序列化,通过序列化去传输,典型的应用就是hessian协议。

它具有如下特点:

  • 容量不固定,随着容量的增加而动态扩容(阈值基本不会达到)
  • 有序集合(插入的顺序==输出的顺序)
  • 插入的元素可以为null
  • 增删改查效率更高(相对于LinkedList来说)
  • 线程不安全

二,构造方法

例如:

List<String> list = new ArrayList<String>();

其中List是接口,ArrayList为其实现类。通过实现接口调用其实现的方法。String为元素类型。

三,常用方法

List.add(E e)

用于在列表的尾部插入指定元素。如果 List 集合对象由于调用 add 方法而发生更改,则返回 true;否则返回 false。
参数说明:

  • e:要添加到列表中的元素。

List.add(int index, E element)

用于在列表的指定位置插入指定元素,并将当前处于该位置的元素及其后续元素的索引加 1。
参数说明:

  • index:用于指定在其中插入指定元素处的索引。
  • element:用于指定要插入的元素。

List.addAll(Collection<? extends String> c)

用于将指定 collection 中的所有元素添加到列表的尾部。如果 List 集合对象由于调用 addAll 方法而发生更改,则返回 true。
参数说明:

  • c:用于指定要将全部元素添加到列表中的 collection。

List.get(int index)

返回list集合中指定索引位置的元素
参数说明:

  • index:用于查找元素的索引。

.List.indexOf(Object o)

从序列(List)的第0个元素开始依次循环,并且调用每个元素的equals()方法和参数对象进行比较,如果某一个元素的equals()方法返回值为true,那么就把当前元素的索引位置作为结果返回。假如序列中有多个重复的元素,只返回这个重复的元素第一次出现时所在的索引位置的值。
参数说明:

  • o:可以是任意格式的元素。

List.lastIndexOf(Object o)

与indexOf()方法相反,它返回的是某个元素最后一次出现的索引位置的值,也就是它会从序列的队尾向队头进行遍历。
参数说明:

  • o:可以是任意格式的元素。

List.contains(Object o)

用于判断列表中是否包含指定元素。如果列表中包含指定元素,则返回 true,否则返回 false。
参数说明:

  • o:可以是任意格式的元素。

List.clear()

用于从列表中移除所有元素。该方法没有返回值。

List.size()

以 int 形式返回列表中元素的个数。

List.remove(Object o)

移除此列表中首次出现的指定元素(如果存在)。如来果列表不包含此元素,则列表不做改动。
参数说明:

  • o:可以是任意格式的元素。

List.remove(int index)

移除此列表中指定索引位置元素(如果存在)。如来果列表不包含此元素,则列表不做改动。
参数说明:

  • index:用于指定在其中移除指定元素处的索引。

List.removeAll(Collection<?> c)

用于从列表中移除指定 collection 中包含的所有元素。
参数说明:

  • c:包含从列表中移除元素的 collection 对象。

四:推荐

内容链接
Java基础 - java.lang.Stringhttps://blog.csdn.net/weixin_43845339/article/details/105646843
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值