Java中List实现方法的ArrayList与LinkedList的区别

从JT808/JT1078协议到多端协同:构建高并发北斗车辆监控平台的技术实践 本文详细介绍了基于JT808/JT1078协议构建高并发北斗车辆监控平台的技术实践,包括协议解析、高并发架构设计、多端协同实现及数据持久化策略。通过Netty、Kafka等技术优化,系统成功支撑日均2000万条消息处理,为GPS车辆动态监控系统提供了可靠解决方案。 阅读详情

List集合,是Collection的一个List实现接口,list集合是无序可重复集合。

ArrayList和LinkeLlist在list集合中的关系

在这里插入图片描述
ArrayList和LinkedList的关系:
ArrayList底层式基于数组的方式实现的,LinkedList底层是基于线性链表方式式实现的,ArrayList的查找元素快,增删慢,LinkedList查找慢,增删快。

两者之间底层实现图
在这里插入图片描述

测试性能

@Test
public void m2(){
    List Ary = new ArrayList();
    Ary.add(1,2);
    System.out.println(Ary);
}

运行结果:
在这里插入图片描述
总结一下:
ArrayList和LinkedList都是有序可重复集合,里面添加的元素都是按照添加的顺序去存储的,并且都不可以在集合长度size()以外添加元素,否则会出现java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 警告,但是可以在集合末端连续添加元素。
比如以下方法就不会报错哦:

List Ary = new LinkedList();
Ary.add(1);
Ary.add(2);
Ary.add(3);
Ary.add(3,2);//add()方法是无返回值类型的方法
Ary.add(4,2);
Ary.add(5,2);

接下俩测试LinkedList的击中遍历方式:

  • 1、新型for循环
  • 2、普通fo循环
  • 3、利用迭代器实现
  • 4、利用JDK4.8工具箱里面提供的forEach()方法遍历集合元素
@Test
public void m3(){
    List Ary = new LinkedList();
    Ary.add(1);
    Ary.add(2);
    Ary.add(3);
    Ary.add(3,"西瓜");//add()方法是无返回值类型的方法
    Ary.add(4,"葡萄");
    Ary.add(5,"柠檬");
    System.out.println("---------普通for循环遍历---------------");
    //普通for循环
    for (int i = 0; i < Ary.size() ; i++) {
        System.out.println("当前的元素是:"+Ary.get(i));
    }
    /**
     * 测试一下转化成数组toArray()方法
     */
    Object[] obj=Ary.toArray();
    for (int i = 0; i<obj.length ; i++) {
        System.out.println("当前的元素是:"+obj[i]);
    }
    System.out.println("---------新型for循环遍历集合---------------");
    //新型for循环遍历集合
    for(Object o:Ary){
        System.out.println("当前的元素是:"+o);
    }
    System.out.println("---------利用迭代器循环---------------");
    //利用迭代器循环
    //先拿到当前集合的迭代器
    Iterator iterator = Ary.iterator();
    while(iterator.hasNext()){
        System.out.println("当前的元素是:"+iterator.next());
    }
    Ary.forEach(e->{
        System.out.println("当前的元素是:"+e);
    });//函数式接口参能用lammada表达式
}

//测试LinkedList的遍历方式
@Test
public void m4(){
    List Ary = new ArrayList();
    Ary.add(1);
    Ary.add(2);
    Ary.add(3);
    Ary.add(3,"西瓜");//add()方法是无返回值类型的方法
    Ary.add(4,"葡萄");
    Ary.add(5,"柠檬");
   //迭代器原理遍历
    System.out.println("-----------迭代器原理遍历----------");
    //先拿到当前对象的迭代器
    Iterator iterator = Ary.iterator();
    while(iterator.hasNext()){
        System.out.println("当前的元素是:"+ iterator.next());
    }
    //利用新型for循环
    System.out.println("-----------利用新型for循环----------");
    for(Object o:Ary){
        System.out.println("当前的元素是:"+o);
    }
    //利用普通for循环
    System.out.println("-----------利用普通for循环----------");
    for (int i = 0; i < Ary.size(); i++) {
        System.out.println("当前的元素是:"+Ary.get(i));
    }
    //转化为.toArray
    Object[] A = Ary.toArray();
    System.out.println(A[1]);
}
【微电网优化】基于粒子群求解CHP机组、气网、电网、储热罐和电锅炉微电网优化模型附matlab代码 1 简介 我国风力发电近年发展迅速,装机容量已成为全球首位.随着风力发电在电力系统中的渗透率不断提高,我国多个地区(尤其是"三北"地区)已经面临着十分严峻的风电消纳问题,产生不容忽视的弃风问题.针对目前我国风电消纳存在的困难,本文提出粒子群优化CHP机组、气网、电网、储热罐和电锅炉微电网控制策略. 2 部分代码 Ppv=[0;0;0;0;0;0;9.86000000000000;19.0100000000000;33.1000000000000;45.0700000000000;64.7900000 阅读详情

相关推荐

Altera USB-Blaster在Win10/Win11的驱动兼容性处理

解决Altera USB-Blaster在Windows 10和Windows 11系统下的驱动兼容性问题,详细演示如何手动安装与更新altera usb-blaster驱动安装,确保下载电缆正常识别,提升开发调试效率。

weixin_42284380的博客 1289

彻底搞懂ArrayList和LinkedList集合类(1)

对于那些说ArrayList查询快、删除和添加效率低,以及LinkedList删除和添加效率高、但是查询效率低,我表示不认同,要具体问题具体分析,接下来具体分析ArrayList和LinkedList的区别。 1.ArrayList具体分析 1.ArrayList底层是使用Object类型的数组来存储数据的,根据数组的特点查询效率高(是根据索引值来查询)、删除和添加效率低(指的是添加和删除是在不在数组的最后), public class ArrayList<E> extends Abstract

qq_39246966的博客 441

常见js手撕题及算法总结

设计一个lazyMan,实现以下功能: LazyMan(‘Tony’); // Hi I am Tony LazyMan(‘Tony’).sleep(10).eat(‘lunch’); // Hi I am Tony // 等待了10秒… // I am eating lunch LazyMan(‘Tony’).eat(‘lunch’).sleep(10).eat(‘dinner’); // H...

没有名字适合我的博客 3176

集合的学习

学习笔记

weixin_59347653的博客 827

用VSCode搭建Vue.js开发环境及Vue.js第一个应用

用VSCode搭建Vue.js开发环境及Vue.js第一个应用

m0_61961937的博客 1万+

无人机+消防车:高楼灭火系统技术详解

传统的消防设备,如登高车、车载水枪、水炮和高喷车,在50米以上高度的火源面前往往力不从心,100米以上高层火灾则更加依赖消防员“爬楼”灭火,效率低下且风险极高。消防水带:采用聚乙烯丝材质,超轻、耐腐蚀、强度高,能够携带大量水或灭火泡沫进行高空喷水灭火作业。“无人机+消防车”高楼灭火系统主要由消防车和无人机两部分组成,通过机车联动实现高效灭火。高效灭火:无人机能够快速到达高层建筑顶部或指定位置进行灭火作业,大大提高了灭火效率。空压泡沫系统:配备超大水箱,支持长时间供应灭火泡沫,满足无人机灭火剂的需求。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1670

从源码角度解析ArrayList特性

说到ArrayList想必大家都不陌生,这绝对是我们日常开发高频使用的一个类。今天我也在这说道说道下ArrayList。 ArrayList是List的一个实现类,在我们的开发使用中主要用来存储对象。想必大家在面试的时候面试官经常会问List,Set,Map这三者的区别。有过工作经验的或者看过网上XXX面试宝典的人肯定都能信手拈来答上来。接下来我就来从源码的角度来说道说道ArrayList为

mylike_java的博客 1465

图机器学习(7)——图神经网络 (Graph Neural Network, GNN)

图神经网络 (Graph Neural Network, GNN) 是一类专门处理图结构数据的深度学习方法。这类方法也被称为几何深度学习 (geometric deep learning),在社交网络分析、计算机图形学等众多领域正受到日益广泛的关注。在本节中,我们介绍了 GNN 的核心原理,将卷积等经典深度学习范式拓展至非欧几里得图空间,实现了局部结构与全局特征的层次化提取。

盼小辉丶的博客 1万+

javaSE LinkedList集合,元素有序可以重复,查询慢,增删快

Collection(集合):容器,用于存放对象(引用类型。基本类型需要自动装箱)   查看List(列表):元素有序,元素可以重复 (有索引)。 通过元素的equals()方法判断是否重复。  查看Set(集):元素无序,不可重复 (没有索引)ArrayList(数组列表): 查询快,增删慢。   查看LinkedList(链表): 查询慢,增删快。HashSet(哈希表): 查询快,增删慢。L...

houyanhua1的专栏 1万+

语义分割(Semantic Segmentation)近年发展综述

目标:为图像中每个像素分配一个语义类别标签(如“道路”、“行人”、“天空”),不区分同类实例。关键挑战精确边界恢复(高空间分辨率)全局上下文理解(大感受野)计算效率与精度平衡小样本/弱监督泛化语义分割的十年演进,是一条从专用→通用、封闭→开放、慢速→实时、像素→语义2015:FCN/U-Net 奠基;2018:DeepLabv3+/PSPNet 实现高精度;2020:HRNet+OCR 登顶竞赛;2021:SegFormer 开启 Transformer 新纪元;2023+

浩瀚之水的专栏 976

【项目实战】DevOps制品管理之JFrog Artifactory介绍

JFrog Artifactory是一款领先的二进制软件制品仓库管理工具,由JFrog公司开发。

奶爸的编程之路,也就一周冷个三天 1352

结构体中vector自动为0_面试题:你是如何选择顺序存储数据结构的?

作者:Tarun Telang 来源:https://dzone.com/articles/arraylist-or-linkedlist本文为Java开发人员选择适当的顺序数据结构提供指导。ArrayList 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。ArrayList 和 LinkedList 都实现 List 接口。首先,让我们了解一下它们最重要的父接口...

weixin_39595621的博客 215

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java集合框架(知识点总结),主要讲List的ArrayList和LinkedList两个重要实现方法,它们之间的区别,以及list的一些方法介绍和具体实现

1.首先,来理解一下集合的概念,集合接口又是啥? 集合的基本框架是这样的: 可见集合包括了很多东西,但在这里主要讲List接口的两个常用的实现类:ArrayList(数组列表)和LinkedList(双重链接列表),那他们是啥呢? 他们之间的关系可以用下图表示,这样看起来比较z直观, 2.ArrayList和LinkedList的区别: 由于数组列表底层是基于Object数组实现,那么如果...

qq_45067943的博客 245

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java LIst 和ArrayList区别和联系详解

文章目录定义使用方法使用区别延伸List的接口及其实现类的主要方法 定义 List是一个接口,Arraylist是List的实现类。因此list不能自己定义一个对象,只能进行引用。 List list1 = new List();//这种定义语句就是错误的 List list2 = new ArrayList();//正确 ArrayList list3 = new ArrayList();//正确 使用方法 以下两种定义都正确,区别在于前者只能使用List和Arraylist的公共方法,后者可以使

y152543654的博客 1029

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Vector、ArrayList、LinkedList的区别

文章目录Vector、ArrayList、LinkedList的区别不同容器类型适合的应用场景数组和链表的对比Reference Vector、ArrayList、LinkedList的区别 这三者都是实现集合框架中的List,也就是所谓的有序集合。 Vector是Java早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。Vector内部是使用对象数组来保存数据,可以根据需要自动的增加容量,当数组已满时,会创建新的数组,并拷贝原有数组数据。 ArrayList是应用.

xylitolz的博客 5145

JAVA List 详细介绍

继上一篇JAVA Arrays类 详细介绍之后List:列表类型,表示一个有序集合。Map:映射类型,表示键值对的集合。Set:集合类型,表示一组不重复的元素。以上就是接下来几篇的内容,本篇主要是ListList以上是List接口的几个实现类,以下,则是一些不太常用的List可以先略过,Stack应该还算常用,后面会讲Stack(栈):继承自Vector类,实现了一个后进先出(LIFO)的栈。:这是一个线程安全的列表,适用于读操作频繁、写操作较少的场景。:这是一个抽象类,实现了。

Yoonaling520的博客 3140

Java中List集合的三个子类ArrayList、Vector、LinkedList

区别List集合和Set集合的区别 ArrayListVectorLinkedList底层结构数组结构数组结构链表结构特点查询快,增删慢查询块,增删慢查询慢,增删块安全性不安全,不同步,效率高安全的,同步的,效率低不安全,不同步,效率高...

liuchonghua的博客 954

java list应用_Java list集合的使用介绍

介绍List是Java中比较常用的集合,它属于接口,继承自Collection接口。同时List接口有很多实现类,比如说:ArrayList、LinkedList,Vector;(注:这是在List集合中很常用的三个实现类)下面就来带大家了解一下Java中list的基本使用。集合关系图list集合常用方法//添加void add(String item)//指定位置插入元素,后面的元素都往后移一个...

weixin_36118025的博客 205

Java List接口实现类(ArrayList、LinkedList、Vector)简述

Collection子接口一:List 通常用List替代数组 List集合类中的元素都是有序、可重复的,集合中的每个元素都有其对应的顺序索引 JDK API中List接口实现类常用的有:ArrayList、LinkedList、Vector ArrayList、LinkedList、Vector的异同点: 同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据 异:ArrayList:为List的主要实现类,线程不安全,效率高:底层使用Object[] elemen

insist_to_learn的博客 202

java list的作用_Java中的List详解(含使用方法,看完必会)

Java集合List详解简介最近在letcode刷题的时候,发现在使用java编写程序的时候总会遇到List,LinkedList,Queue。于是学习了一下,记录一下List到底是个什么东西。Java集合作为一个Developer,Java集合类是我们在工作中运用最多的、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求;Java集合就像一个容器,可以存储任何类型...

weixin_39566578的博客 3893

Java集合List接口——ArrayList、LinkedList、Vector

List接口 是 Collection接口 的子接口。 Collection接口 是单例集合,用来存储一个个的对象。 List接口 在此之上,是用来存储 有序,不可重复的 数据。 而List接口又有三个实现类,ArrayList、LinkedList、Vector。 Vector JDK 1.0就有 ArrayList JDK 1.2 增加 LinkedListJDK 1...

猿兄 302

list.clear()与list = null 区别

一 . list.clear()底层源码实现 在使用list 结合的时候习惯了 list=null ;在创建这样的方式,但是发现使用list的clear 方法很不错,尤其是有大量循环的时候 1、list 接口  的ArrayList 类的clear() 方法源码 如下: /**       * Removes all of the elements from this list.  T...

王小白的博客 1万+

Queue 与List、LinkedList与 ArrayList 区别

Queue 与List、LinkedList与 ArrayList 区别 List 是一个接口,不能实例化,通过实例化ArrayList 或者LinkedList来调用:List list = new ArrayList(); |--List: 元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引, |-- A

mejustdoit的专栏 6215

数据结构:LinkedList与链表—无头双向链表(二)

LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。同时,LinkedList也实现了List接口。

zm3rttqs9f的博客 1236

List集合知识点整理【Arraylist List接口 Vector LinkedList Stack类】

文章目录ArraylistList接口VectorLinkedListStack类 Arraylist 概述 List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector类,除了此类是不同步的。) 数据结构: 数据的存储方式 和集合相关的数据结构...

Jack_cherisf的博客 340

【Java数据结构】LinkedList

LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。在集合框架中,LinkedList也实现了List接口,具体如下【说明】实现了List接口的底层使用了双向链表没有实现接口,因此LinkedList不支持随机访问的任意位置插入和删除元素时效率比较高,时间复杂度为O(1)比较适合任意位置插入的场景。

2401_83227065的博客 687
上一篇: 正则表达式
下一篇: List在使用迭代器遍历异常情况
惠溪崽崽
博客等级 码龄7年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值