List接口与ArrayList、LinkedList实现类

List接口中存储的是一组不唯一的,有序的对象

List接口的父接口是Collection接口,所以List接口中大多数方法都是从Collection接口中继承的

List接口有两个实现类:

  1.ArrayList实现类:采用数组的数据结构

    优点:遍历和随机访问元素的效率比较高

    缺点:添加和删除需要移动大量的数据效率低

  2.LinkedList实现类:采用链表的数据结构

    优点:插入和删除元素的效率比较高

    缺点:遍历和随机访问元素的效率比较低

ArrayList实现类特点及api:

特点:

  1.可以存放不同类型的数据,而数组只能存放固定类型的数据

  2.在使用ArrayList子类实现的时候,初始化的长度是10,当长度不够的时候会自动进行扩容(newlength = oldlength * 1.5)

get(int index):

获取集合中指定下标位置的元素

复制代码
 1 public class ListDemo {
 2     public static void main(String[] args) {
 3         List list = new ArrayList();
 4         list.add("a");
 5         list.add(0);
 6         list.add(true);
 7         System.out.println(list.get(0));
 8     }
 9 }
10 打印结果:a
复制代码

indexOf(Object o):

按照集合元素下标递增顺序,获取集合中指定元素的下标位置

复制代码
 1 public class ListDemo {
 2     public static void main(String[] args) {
 3         List list = new ArrayList();
 4         list.add("a");
 5         list.add(0);
 6         list.add(true);
 7         System.out.println(list.indexOf("a"));
 8     }
 9 }
10 打印结果:0
复制代码

lastIndexOf(Object o):

按照集合元素下标递减顺序,获取集合中指定元素的下标位置

复制代码
 1 public class ListDemo {
 2     public static void main(String[] args) {
 3         List list = new ArrayList();
 4         list.add("a");
 5         list.add(0);
 6         list.add("a");
 7         list.add(true);
 8         System.out.println(list.lastIndexOf("a"));
 9     }
10 }
11 打印结果:2
复制代码

set(int index,Object element):

在集合中的指定位置插入元素

复制代码
 1 public class ListDemo {
 2     public static void main(String[] args) {
 3         List list = new ArrayList();
 4         list.add("a");
 5         list.add(0);
 6         list.add("a");
 7         list.add(true);
 8         list.set(0,"yyy");
 9         System.out.println(list);
10     }
11 }
12 打印结果:[yyy, 0, a, true]
复制代码

subList(int fromIndex,int toIndex):

截取集合中指定位置之间的元素,放入新的集合中

复制代码
 1 public class ListDemo {
 2     public static void main(String[] args) {
 3         List list = new ArrayList();
 4         list.add("a");
 5         list.add(0);
 6         list.add("a");
 7         list.add(true);
 8         List list1 = list.subList(0, 2);
 9         System.out.println(list1);
10     }
11 }
12 打印结果:[a, 0]
复制代码

LinkedList实现类api:

add(int index,Object element):

在指定位置添加元素

链表中添加元素,会断开指定元素的链条,上一元素末尾指针指向新元素开头,新元素末尾指针指向下一元素开头

addFirst(Object e):

在链表第一个元素之前插入元素

addLast(Object e):

在链表最后一个元素之后插入元素

element():

获取链表中第一个元素

offer(Object e):

在链表最后一个元素之后插入元素,该方法与add()方法相同

peek()、peekFirst()、peekLast()、poll()、pollFirst()、pollLast()、get():

这些方法都是获取元素的方法

注意:

ArrayList与LinkedList拥有更加丰富的方法实现,需要用的时候查询api即可,不需要记忆

 

posted @   showMeTheCodes  阅读(406)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
阅读排行:
· AI Agent爆火后,MCP协议为什么如此重要!
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· Java使用多线程处理未知任务数方案
点击右上角即可分享
微信分享提示