首页 > 其他分享 >2. List

2. List

时间:2024-12-22 21:44:02浏览次数:3  
标签:LinkedList ArrayList List Vector 数组 复杂度

Java的List是非常常用的数据类型,List是有序的集合,可以包含重复的元素,提供了按索引访问的方式,继承自Collection。
Java List一共三个实现类:分别是ArrayList、Vector和LinkedList。

  1. ArrayList(数组)
    ArrayList是最常用的List实现类,内部是通过Array(数组)实现的,Array(数组)是基于索引(index)的数据结构,是数组动态扩容实现,它使用索引在数组中搜索和读取数据很快,占用连续的内存空间。
    Array获取数据的时间复杂度是O(1),但要删除数据的开销却是很大,因为这需要重排数组中的所有数据,删除数据后需要把后面所有的数据前移,时间复杂度为O(n)。
    因此它适合随机查找和遍历,不适合插入和删除。
    ArrayList的toArray()方法返回一个数组,asList()返回一个列表

  2. Vector(数组实现 线程同步)
    Vector与ArrayList一样,也是通过数组实现的, 不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。

  3. LinkedList(链表)
    LinkedList内部是用链表结构存储数据的,很适合数据的动态插入和删除,不需要连续的内存空间。
    LinkedList随机访问速度慢,需要从头节点开始遍历,时间复杂度为O(n),在中间插入和删除元素较快,只需要修改节点的引用,时间复杂度为O(1),

标签:LinkedList,ArrayList,List,Vector,数组,复杂度
From: https://www.cnblogs.com/tim-zuo/p/18622598

相关文章

  • Arrays.asList() 详解
    【1.要点】该方法是将数组转化成List集合的方法。Listlist=Arrays.asList("a","b","c");注意:(1)该方法适用于对象型数据的数组(String、Integer...)(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)(3)该方法将数组与List列表链接起来:当更新其......
  • 易优CMS中模板文件 lists_tags.htm 不存在,如何解决?
    在使用易优CMS时,如果遇到模板文件 lists_tags.htm 不存在的问题,可以通过以下几种方法来解决。这个问题通常发生在自定义模板或使用官方模板时,某些文件未正确添加或缺失。以下是详细的解决步骤:方法一:手动创建 lists_tags.htm 文件登录FTP或服务器管理工具:使用FTP客户端或......
  • Redis篇-13--数据结构篇5--List内存模型(LinkedList,zipList,quicklist,Listpack,内存对齐,
    Redis的List(列表)数据类型是一个双向链表,允许从两端高效地插入和删除元素。为了提高性能和内存利用率,Redis对List进行了多种优化。特别是在Redis3.2版本中引入的quicklist结构,和Redis6.2版本中引入Listpack结构(替代之前的ziplist压缩列表),逐步提升List的性能。简单概括如下......
  • Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_6
    上面的错误发生在我使用docker的centos:7.9.2009镜像创建自定义镜像时出现发生错误的行RUNyuminstallgcc-y出现错误的是yum命令无法从http://mirrorlist.centos.org/网站中拉取文件,原因是这个centos的官方镜像源网址已经不服务了解决办法是换源,我换成腾讯源发现不够快,换......
  • 【C++】List
    目录1.1list的介绍1.2list的使用1.2.1list的构造1.2.2listiterator的使用1.2.3listcapacity1.2.4listelementaccess1.2.5listmodifiers1.2.6list的迭代器失效2.list与vector的对比1.1list的介绍1.2list的使用1.2.1list的构造构造......
  • Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
    在CentOS7中使用yum工具时,如果出现"Couldnotresolvehost:mirrorlist.centos.org"的错误,通常是因为默认的镜像源无法访问。以下是一些常用的解决方法:检查网络连接:首先使用ping命令测试网络连接是否正常。如果pingmirrorlist.centos.org不通,但pingwww.baidu.com......
  • [oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
    python有哪些关键字_keyword_list_列表_reserved_words回忆上次内容helloworld不是从来就有的来自于c语言 print、小括号和双引号也来自于c语言   添加图片注释,不超过140字(可选) python标识符的命名规则......
  • 踩坑之《FTPClient.listFiles()不能获取文件》
    在做一件什么事情当时做在做一个文件上传下载的功能,其中涉及到的是存储FTP服务器。这个系统是某司的内部系统,我们在七楼开发调试,完是到三楼部署。遇到了什么问题当时就遇到了一个很奇怪的问题。问题现象是获取列表的时候,返回数据为空,有时候还会提示链接断开。这个问题坑的我和......
  • 效率神器Listary如何安装,附安装包
    前言大家好,我是小徐啊。Listary是一款类似于everything的搜索神器,但又有所区别。它主要是让我们减少选择目录或者文件的鼠标点击次数。解决了一大波windows的操作问题,非常方便。今天,小徐就来介绍下这个神器。文末附获取方式。如何安装Listary首先,我们双击下Listary的安装包,开始......
  • Mybatis 升级 Mybatis Plus 重写 Mybatis Plus selectList,如果将参数传到 Mapp.xml
    目录Mybatis写法EntityMapperServiceMapper.xmlTestMybatisPlusEntityMapperServiceMapper.xmlTestMybatis升级MybatisPlus将实体做为条件参数带到Mapp.xml中的自定义SQLMybatis写法通过pagehelper进行分页EntitypublicclassActivityTrackingimplementsSeri......