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即可,不需要记忆
作者:http://cnblogs.com/lyc-code/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权力。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· AI Agent爆火后,MCP协议为什么如此重要!
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· Java使用多线程处理未知任务数方案