【JAVA学习之路 | 进阶篇】List接口常用方法

简介: 【JAVA学习之路 | 进阶篇】List接口常用方法

1.前言

上文讲述了Collection接口中的所有方法.该文主要讲述的是Collection的子接口List的常用方法.

2.常用方法

List除了从Collection集合中继承的方法外,由于List是有序的,还添加了与索引相关的方法.如 :


插入元素 :


void add(int index,Object ele) : 在index索引处插入ele元素.


void addAll(int index,Collection coll) : 在index索引处添加Collection集合中所有元素.


获取元素 :


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 obj) : 将index索引处的置替换为obj.

3.List接口实现类的区别

(1). ArrayList : List的主要实现类,线程不安全,效率高,底层使用Object[]实现.

类似于数据结构的线性表 : 在查找添加数据效率较高,插入删除效率较低.

(2). LinkedList : 底层使用双向链表实现进行存储.在对集合中的元素进行频繁的删除插入操作时,可以考虑使用该结构.其在查找添加数据的效率较低,在删除插入的效率较高.

(3). vector(向量 ) : 线程安全,效率较低,底层使用Object[]进行存储.
相关文章
|
11天前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
11天前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
15天前
|
Java 数据库
成功解决:java.sql.SQLSyntaxErrorException: Unknown column ‘origin_name‘ in ‘field list‘
这篇文章讲述了作者在使用SpringBoot和Mybatis-plus时遇到的一个数据库字段映射问题,即SQLSyntaxErrorException错误,原因是实体类字段和数据库字段不匹配。文章提供了两种解决方法:一是关闭自动驼峰命名转换配置,二是修改数据库字段以匹配实体类字段,最终成功解决了问题。
成功解决:java.sql.SQLSyntaxErrorException: Unknown column ‘origin_name‘ in ‘field list‘
|
1天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
20 5
|
9天前
|
存储 Java API
【Java高手必备】揭秘!如何优雅地对List进行排序?掌握这几种技巧,让你的代码瞬间高大上!
【8月更文挑战第23天】本文深入探讨了Java中对List集合进行排序的各种方法,包括使用Collections.sort()、自定义Comparator以及Java 8的Stream API。通过示例代码展示了不同情况下如何选择合适的方法:从简单的整数排序到自定义类对象的排序,再到利用Comparator指定特殊排序规则,最后介绍了Stream API在排序操作中的简洁应用。理解这些技术的区别与应用场景有助于提高编程效率。
15 4
|
9天前
|
存储 Java 索引
|
11天前
|
Java
【Java基础面试四十六】、 List<? super T>和List<? extends T>有什么区别?
这篇文章阐述了Java泛型中的List<? super T>和List<? extends T>的区别,解释了通配符的使用规则,以及Java泛型设计原则确保了编译时无警告则运行时无ClassCastException异常。
|
3天前
|
Java 开发者 C++
Java多线程同步大揭秘:synchronized与Lock的终极对决!
Java多线程同步大揭秘:synchronized与Lock的终极对决!
28 5
|
5天前
|
监控 Java 测试技术
Java并发编程最佳实践:设计高性能的多线程系统
Java并发编程最佳实践:设计高性能的多线程系统
18 1
|
3天前
|
安全 Java 开发者
Java多线程同步:synchronized与Lock的“爱恨情仇”!
Java多线程同步:synchronized与Lock的“爱恨情仇”!
35 5
下一篇
云函数