首页 > 其他 > 详细

List

时间:2020-06-10 13:09:21      阅读:47      评论:0      收藏:0      [点我收藏+]

List

在Collection中,List集合是有序的,Developer可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问、遍历元素。

List集合中,常用的是ArrayList和LinkedList这两个类。其中,ArrayList底层通过数组实现,随着元素的增加而动态扩容。而LinkedList底层通过链表来实现,随着元素的增加不断向链表的后端增加节点。

特点

  1. 有序:可以保证元素放入的顺序。

    通过给每个元素编号,可以通过索引的方式来操作这个集合。

  2. List中可以包含重复的元素。

  3. List可以添加null元素,而且可以添加多个null元素

常用方法

技术分享图片

ArrayList

ArrayList是Java集合框架中使用最多的一个类,是一个数组队列,线程不安全集合。它继承于AbstractList,实现了List, RandomAccess, Cloneable, Serializable接口。

  • 实现List,得到了List集合框架基础功能;
  • 实现RandomAccess,获得了快速随机访问存储元素的功能,RandomAccess是一个标记接口,没有任何方法;
  • 实现Cloneable,得到了clone()方法,可以实现克隆功能;
  • 实现Serializable,表示可以被序列化,通过序列化去传输,典型的应用就是hessian协议。

具有如下特点:

  • 容量不固定,随着容量的增加而动态扩容(阈值基本不会达到)
  • 有序集合(插入的顺序==输出的顺序)
  • 插入的元素可以为null
  • 改查效率更高(相对于LinkedList来说)
  • 线程不安全

【Array List 基本操作】

技术分享图片

LinkedList

LinkedList是一个双向链表,每一个节点都拥有指向前后节点的引用。相比于ArrayList来说,LinkedList的随机访问效率更低。

它继承AbstractSequentialList,实现了List, Deque, Cloneable, Serializable接口。

  • 实现List,得到了List集合框架基础功能;
  • 实现Deque,Deque 是一个双向队列,也就是既可以先入先出,又可以先入后出,说简单些就是既可以在头部添加元素,也可以在尾部添加元素;
  • 实现Cloneable,得到了clone()方法,可以实现克隆功能;
  • 实现Serializable,表示可以被序列化,通过序列化去传输,典型的应用就是hessian协议。

LinkedList基本操作

技术分享图片

ArrayList和LinkedList区别:

  1. ArrayList是基于数组的,而LinkedList基于链表的

  2. ArrayList 查询快,增删慢;

    LInkedList 查询慢,增删快;

  3. ArrayList、LinkedList使用场景

    查询业务多的情况下,适合ArrayList.

    增删业务多的情况下,适合LinkedList.

    如果不确定查询多还是增删多,就用ArrayList;

    二八法则:20%是增删相关,80%是查询相关

List

原文:https://www.cnblogs.com/juzhuxiaozhu/p/13084356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!