大家好,今天给各位分享List集合的完整解决方案的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
有序(访问顺序一致)、有索引、元素可以重复
列出集合公共子类
数组列表
链表
2 List接口常用方法
public void add(int index, E element): 将指定元素添加到指定位置
public E get(int index): 根据index获取指定位置的元素
public E remove(int index): 删除指定位置的元素并返回被删除的元素
boolean remove(Object o): 删除指定元素,删除成功返回true,否则返回false
public E set(int index, E element): 修改指定位置的元素为指定值元素
例子
import java.util.ArrayList;import java.util.List;public class ListDemo {public static void main(String[] args){//创建集合对象ListInteger list=new ArrayList();list.add(2); list .add(3);list.add(4);//将元素4 添加到索引1 位置list.add(1,4);//修改索引0 处的元素为6list.set(0,6); System.out.println(列表); //注意索引越界问题//list.add(5,6); //根据索引获取元素System.out.println(list.get(2)); //删除指定位置的元素//System.out.println(list.remove(1)); //删除元素1System.out.println(list.remove(Integer.valueOf(5)));System.out.println(list );}}
3 List接口的常用子类
数组列表
链表
3.1 ArrayList集合
/**
ArrayList集合的特点
有序(访问顺序一致)、有索引、元素可以重复
最底层是数组结构:增删慢,查询快,非线程安全,效率高。
*/
import java.util.ArrayList;public class ArrayListDemo {public static void main(String[] args){//创建ArrayList集合对象ArrayListString list=new ArrayList();list.add(‘A’) ;list.add(‘ B’) ;list.add(‘C’) ;System.out.println(list);}}
3.2 LinkedList集合
LinkedList集合特点
实现List接口
有序(访问顺序一致)、有索引、元素可以重复
底层是双链表结构,查询慢,增删快,非线程安全,效率高。
LinkedList 集合特定的方法
public void addFirst(E e): 将元素添加到链表的头部
public void addLast(E e): 将元素添加到链表末尾
public E getFirst(): 获取链表的头元素
public E getLast(): 获取链表尾部元素
public E removeFirst(): 删除链表头元素
public E removeLast(): 删除链表尾部元素
例子
import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args){//创建LinkedList集合对象LinkedListString list=new LinkedList();list.add(‘A’);list.add( 0 ,’B’);//向链表头部添加元素list.addFirst(‘C’);//向链表末尾添加元素list.addLast(‘D’);list.add (‘E’);//获取链表头元素System.out.println(list.getFirst()); //获取链表尾部元素System.out.println(list.getLast());System.out.println(list);System.out. println(list.get(3));//删除链表头元素System.out.println(list.removeFirst());//删除链表尾元素System.out.println(list .removeLast());}}
4 ArrayList 和LinkedList 之间的选择
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/164757.html
用户评论
独角戏°
终于找到一个关于List集合完整的讲解了!之前一直卡在一些细节上,这篇博文把很多关键点都清晰地解释了,受益匪浅呀!
有20位网友表示赞同!
虚伪了的真心
这篇博文写的真不错,而且讲解很通俗易懂,即使对编程不太熟悉的我也能理解。希望以后博主还能分享更多关于Java高级知识的干货。
有16位网友表示赞同!
Edinburgh°南空
虽然List集合的使用比较常见,但我总感觉学的不够透彻。看了这篇全解,很多点都让我恍然大悟!特别是关于并发和线程安全那一部分,真是太棒了!
有7位网友表示赞同!
玩味
对List集合的理解确实很重要,因为在实际项目中经常会使用到。我以前只是简单的调用过API,没想过内部机制是怎么运作的。这篇博文开拓了我的眼界,我会好好学习一下。
有18位网友表示赞同!
╯念抹浅笑
LIST集合确实很常用的,但我觉得这篇文章写的有点过于复杂了。对于初学者来说可能难以理解,希望能简化一些描述。
有5位网友表示赞同!
花菲
这个“全解”好像还没把所有List集合的细节都涵盖到吧?比如我比较想知道关于动态扩容机制的详细解释,这篇博文就略过了。
有19位网友表示赞同!
有阳光还感觉冷
感觉写的太好了!之前一直想理解List集合的底层实现原理,这篇博文终于让我解决了疑问。期待博主继续分享更多高层次的设计模式和算法讲解!
有18位网友表示赞同!
一尾流莺
这个标题有点虚假宣传的感觉吧?我看了半篇文章才发现并没有什么太多“全解”的味道。有些概念的描述也比较抽象,缺乏实际案例。
有18位网友表示赞同!
涐们的幸福像流星丶
List集合的学习确实需要花时间琢磨才能真正理解它的优缺点。这篇博文虽然没有深度解答我的所有疑惑,但也让我了解了List集合的一些关键特性,很有帮助!
有11位网友表示赞同!
荒野情趣
对于新手来说,这份完整的讲解确实非常有用!但是对于比较熟悉Java框架和数据结构的开发者来说,可能有些内容重复或过于基础,希望能针对更高级的使用场景进行深入讲解。
有13位网友表示赞同!