Java集合List的使用详细解析
List简单介绍
- 鉴于Java中数组用来存储数据的局限性,我们通常使用java.util.List替代数组
- List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。
- JDK API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。
List接口方法
List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来操作集合元素的方法。
- 插入元素
- void add(int index, Object ele):在index位置插入ele元素
- boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
- 获取元素
- Object get(int index):获取指定index位置的元素
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
- 获取元素索引
- int indexOf(Object obj):返回obj在集合中首次出现的位置
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
- 删除和替换元素
- Object remove(int index):移除指定index位置的元素,并返回此元素
- Object set(int index, Object ele):设置指定index位置的元素为ele
List接口主要实现类:ArrayList
- ArrayList 是 List 接口的主要实现类
- 本质上,ArrayList是对象引用的一个”变长”数组
- Arrays.asList(…) 方法返回的 List 集合,既不是 ArrayList 实例,也不是 Vector 实例。 Arrays.asList(…) 返回值是一个固定长度的 List 集合
ArrayList底层是Object数组
特定:查找和添加效率高;删除和插入的效率低。
List的实现类之二:LinkedList
对于频繁的插入或删除元素的操作,建议使用LinkedList类,效率较高。
这是由底层采用链表(双向链表)结构存储数据决定的。
特有方法:
- void addFirst(Object obj)
- void addLast(Object obj)
- Object getFirst()
- Object getLast()
- Object removeFirst()
- Object removeLast()
List的实现类之三:Vector
- Vector 是一个古老的集合,JDK1.0就有了。大多数操作与ArrayList相同,区别之处在于Vector是线程安全的。
- 在各种List中,最好把ArrayList作为默认选择。当插入、删除频繁时,使用LinkedList;Vector总是比ArrayList慢,所以尽量避免使用。
特有方法:
- void addElement(Object obj)
- void insertElementAt(Object obj,int index)
- void setElementAt(Object obj,int index)
- void removeElement(Object obj)
- void removeAllElements()
面试题
以下代码输出结果为?
@Test
public void testListRemove() {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
updateList(list);
System.out.println(list);
}
private static void updateList(List list) {
//这里的参数2, 默认指的是索引,因为如果是值的话,还得进行装箱
//装箱有消耗
list.remove(2);
}

到此这篇关于Java集合List的使用详细解析的文章就介绍到这了,更多相关List的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Springboot基于Redisson实现Redis分布式可重入锁源码解析
这篇文章主要介绍了Springboot基于Redisson实现Redis分布式可重入锁,本文通过案例源码分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-03-03
MyBatis 注解操作与 XML 配置增删改查全流程实现代码
本文介绍了MyBatis,它是一款轻量级的持久层框架,能简化JDBC冗余代码,支持自定义SQL与对象映射,并兼顾开发效率与灵活性,通过实例代码介绍了MyBatis 注解操作与 XML 配置增删改查全流程实现代码,感兴趣的朋友一起看看吧2026-01-01
关于IDEA报错Error:java 不支持发行版本17的原因及解决方案
在rebuild或运行项目时提示“Error:java: 错误: 不支持发行版本 17”,本文将给大家介绍了IDEA提示“Error:java: 错误: 不支持发行版本17”的原因及解决方案,需要的朋友可以参考下2023-09-09
详解springmvc控制登录用户session失效后跳转登录页面
本篇文章主要介绍了springmvc控制登录用户session失效后跳转登录页面,session一旦失效就需要重新登陆,有兴趣的同学可以了解一下。2017-01-01


最新评论