当前位置: 首页 > 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.lryc.cn/news/619315.html

相关文章:

  • C++主流string的使用
  • 工业元宇宙:迈向星辰大海的“玄奘之路”
  • C++ 类和对象4---(初始化列表,类型转化,static成员)
  • nuxt相比于vue的优点
  • java-泛型接口
  • C++多态:理解面向对象的“一个接口,多种实现”
  • 智能算法流程图在临床工作中的编程视角系统分析
  • 【算法】位运算经典例题
  • 论“证明的终点”:从“定义域 = 正确”看西方体系的自证困境
  • 模式设计:策略模式及其应用场景
  • 全面深入-JVM虚拟机
  • 神经网络的核心组件解析:从理论到实践
  • Deep Agents:用于复杂任务自动化的 AI 代理框架
  • 什么是HTTP的无状态(举例详解)
  • python的游戏评级论坛系统
  • 面试实战 问题三十 HTTP协议中TCP三次握手与四次挥手详解
  • 字体优化:Web 排版最佳实践
  • 【cs336学习笔记】[第5课]详解GPU架构,性能优化
  • Debian 网络服务管理的深度解析:传统与现代工具的碰撞
  • 三方相机问题分析六:【没用相机,诡异的手电筒不可使用】下拉状态栏,手电筒置灰,无法打开,提提示相机正在使用
  • YOLOv1 到 YOLOv2 模型训练过程全解析
  • Java面试宝典:ZGC
  • 大模型能力评测方式很多?
  • 《Python学习之基础语法2:掌握程序流程控制的艺术》
  • RTCP详解
  • 【安卓,问题记录】ImageView 在布局顺序上位于 Button 上方,却出现图像内容被 Button 遮挡
  • [激光原理与应用-263]:理论 - 几何光学 - 光纤通信:以光为媒的现代通信基石
  • MySQL宝典
  • html原生js文件使用javascript-obfuscator插件进行加密处理
  • 《C++进阶之继承多态》【final + 继承与友元 + 继承与静态成员 + 继承模型 + 继承和组合】