Java_进阶:list 接口

本文详细介绍了List接口的特点,包括它作为Collection子接口的有序性和元素可重复性。ArrayList和LinkedList作为List的常见实现类,分别基于数组和链表实现,各有优劣。ArrayList适合索引访问,而LinkedList在增删操作上更高效。此外,还对比了两者在性能上的差异,并列举了它们各自特有的方法。
摘要由CSDN通过智能技术生成

1、list 接口
1.1 特点

  • List 是 Collection 接口的子接口,
  • List 中的元素是有序的,而且可以重复。
  • List 集合中的数据元素都对应一个整数形式的序号索引,记录其在集合中的位置,可以根据此序号存取元素。

JDK 中常用的 List 实现类是 ArrayList 和 LinkedList。

1.2 方法
List 接口继承自 Collection 接口,除了拥有 Collection 接口所拥有的方法外,还拥有下列方法:

void add(int index,Object o)在集合的指定 index 位置处,插入指定的 o 元素。

Object get(int index)返回集合中 index 位置的数据元素。

int indexOf(Object o)返回此集合中第一次出现的指定 o 元素的索引,如果此集合不包含 o 元素,则返回-1。

int lastIndexOf(Object o)返回此集合中最后出现的指定 o 元素的索引,如果此集合不包含 o 元素,则返回-1。

Object remove(int index)移除集合中 index 位置的数据元素。

Object set(int index,Object o)用指定的 o 元素替换集合中 index 位置的数据元素。

2、List 的实现类
List 实现类是 ArrayList 和 LinkedList。

LinkedList 和 ArrayList 在应用层面类似,只是底层存储结构上的差异导致了二者对于不同操作,存在性能上的差异。这其实就是顺序表和链表之间的差异。一般而言,对于“索引访问”较多的集合操作建议使用 ArrayList,而对于“增删”较多的集合操作建议使用 LinkedList。

2.1 ArrayList

ArrayList 实现了 List 接口,其底层采用的数据结构是数组。

根据数据结构的知识可知,数组(顺序表)在插入或删除数据元素时,需要批量移动数据元素,故性能较差;但在根据索引获取数据元素时,因为数组是连续存储的,所以在遍历元素或随机访问元素时效率高。
ArrayList 的底层就是数组,因此 ArrayList 更加适合根据索引访问元素的操作。

2.2 LinkedList

LinkedList 的底层是链表。

LinkedList 接口除了拥有 ArrayList 接口提供的方法外,还增加了如下一些方法。

void addFirst(Object o)将指定数据元素插入此集合的开头。

void addLast(Object o)将指定数据元素插入此集合的结尾。

Object getFirst()返回此集合的第一个数据元素。

Object getLast()返回此集合的最后一个数据元素。

Object removeFirst()移除并返回此集合的第一个数据元素。

Object removeLast()移除并返回此集合的最后一个数据元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值