当前位置: 首页 > news >正文

Java -- Vector底层结构-- ArrayList和LinkedList的比较

目录

1. Vector底层结构和源码剖析

2. LinkedList的全面说明

3. ArrayList和LinkedList的比较

如何选择ArrayList和LinkedList:

4. Set接口和常用的方法

Set接口的遍历方式:


1. Vector底层结构和源码剖析

1. Vector底层也是一个对象数组,protected Object【】 elementData

2. Vector是线程同步的 ,操作方法带有synchronized

3. 在开发中,需要做线程同步安全时,考虑使用Vector


2. LinkedList的全面说明

1. LinkedList底层实现了双向链表和双端队列的特点

2. 可以添加任意元素,包括null

3. 线程不安全,没有实现同步


3. ArrayList和LinkedList的比较

ArrayList:可变数组,效率较低 数组扩容 改查效率较高

LinkedList:双向链表 较高,通过链表追加  改查效率较低

如何选择ArrayList和LinkedList:

1. 如果我们改查的操作多,选择ArrayList

2. 如果我们增删的操作多,选择LinkedList

3. 一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择ArrayList

4. 在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是ArrayList,另外一个模块是LinkedList,也可以根据业务来进行选择


4. Set接口和常用的方法

和list接口一样,set接口也是Collectiond子接口,因此常用方法和Collection接口一样

Set接口的遍历方式:

同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。

1. 可以使用迭代器      2. 增强for     3. 不能使用索引的方式来获取

//1. 以Set接口的实现类 HashSet来讲解 Set接口的方法// set接口实现类的对象(Set接口对象)// set接口对象存放数据是无序的  即添加顺序和取出顺序不一致// 取出顺序固定的  不会变化  虽然不是添加顺序Set set = new HashSet();set.add("jone");set.add("luck");set.add("jone");//set.add(null);set.add(null);//System.out.println("set="+set);//System.out.println("=======");Iterator iterator = set.iterator();while (iterator.hasNext()) {Object obj =  iterator.next();System.out.println("obj="+obj);}//System.out.println("=====for=====");for (Object o :set) {System.out.println("o="+o);}

http://www.dtcms.com/a/328902.html

相关文章:

  • 河南萌新联赛2025第五场 - 信息工程大学
  • AI-调查研究-50-大数据调研报告 二十年演进:从Hadoop批处理到Flink实时计算的架构变革
  • OpenCV的实际应用
  • 121-基于FLask的共享单车需求数据可视化分析系统
  • ACWing 算法基础课-数据结构笔记
  • 闹钟时间到震动与声响提醒的实现-库函数版(STC8)
  • Android平台RTSP播放器选型指南:从开源方案到跨平台低延迟专业SDK
  • Flink DataStream 按分钟或日期统计数据量
  • 资源查看-lspci命令
  • django request.data.get 的值修改
  • python二叉树的深度优先遍历和广度优先遍历
  • OpenAI官方写的GPT-5 prompt指南
  • Prompt工程师基础技术学习指南:从入门到实战
  • 实战多屏Wallpaper壁纸显示及出现黑屏问题bug分析-学员作业
  • 理解RESTful架构:构建优雅高效的Web服务
  • 直播美颜SDK开发实战:高性能人脸美型的架构与实现
  • STM32HAL 快速入门(六):GPIO 输入之按键控制 LED
  • 代码架构之 BO、PO、DTO
  • 边缘计算:数据处理新范式的革命性架构
  • Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
  • 系统垃圾清理批处理脚本 (BAT)
  • 电子电气架构 --- 软件项目文档管理
  • OpenCVSharp中的HDR成像
  • 杂记 01
  • electron进程间通信- 从渲染进程到主进程
  • Spring cloud集成ElastictJob分布式定时任务完整攻略(含snakeyaml报错处理方法)
  • 移动端网页调试实战,触摸事件穿透与点击冲突问题的定位与优化
  • C++中的`auto`与`std::any`:功能、区别与选择建议
  • CV 医学影像分类、分割、目标检测,之【肝脏分割】项目拆解
  • 数据挖掘常用公开数据集