Java学习打卡-Day18-ArrayList、Vector、LinkedList

ops/2025/3/19 4:12:16/

ArrayList

  • 底层是数组队列,相当于动态数组。

    ArrayList 中维护了一个Object 类型的数组elementData
    transient Object[] elementData;

  • ArrayList 中可以存储任何类型的对象,包括 null 值。不过,不建议向ArrayList 中添加 null 值,会让代码难以维护比如忘记做判空处理就会导致空指针异常。
  • ArrayList 基本等同于Vector,除了ArrayList 是线程不安全(执行效率高)。

    ArrayListList 的主要实现类,底层使用 Object[]存储,适用于频繁的查找工作,线程不安全 。
    VectorList 的古老实现类,底层使用Object[] 存储,线程安全。

  • 当创建ArrayList 对象时,如果使用的是无参构造器,则初始elementData容量为0。第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍。
  • 如果使用的是指定大小的构造器,则初始elementData 容量为指定大小,如果需要扩容,则直接扩容elementData 为1.5倍。

Vector

  • 当创建Vector 对象时,如果使用的是无参构造器,则初始elementData容量默认为10。如需要再次扩容,则扩容elementData为2倍。
  • 如果使用的是指定大小的构造器,则初始elementData 容量为指定大小,如果需要扩容,则直接扩容elementData 为2倍。

LinkedList

  • 底层是双向链表。
  • 可以添加任意类型的元素,包括null值,可重复。
  • 线程不安全。
  • LinkedList中维护了两个属性firstlast分别指向首节点和尾节点。
  • 每个节点(Node对象)又维护了prevnextitem三个属性,其中通过
    prev指向前一个节点,通过next指向后一个节点。

http://www.ppmy.cn/ops/166938.html

相关文章

「速通AI编程开发」共学(三):提示词(Prompts)配置项

「速通AI编程开发」共学(三) 一、共学课程来源学习初衷 二、介绍不同模式下的提示词(Prompts)支持性提示词 三、提示词学习材料分享 一、共学课程来源 Datawhale通过开源学习模式,助力AI学习者与知识连接,…

Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中,需求文档中的图片(如界面设计图、流程图)往往是测试用例生成的重要参考。然而,手动提取图片并识别内容不仅耗时,还容易出错。本文将通过一个自研小工具,结合 PaddleOCR 和大模型,自…

超参数优化算法:scikit-opt库、Scikit-Optimize库

1 scikit-opt库:https://www.cnblogs.com/luohenyueji/p/18333387 https://blog.csdn.net/weixin_45750972/article/details/124683402 a 差分进化算法 (Differential Evolution):一种基于群体搜索的优化算法,通过模拟生物进化的过程来寻找最…

python局部变量和全局变量

文章目录 1.局部变量和全局变量2.局部变量2.1 局部变量的作用2.2 局部变量的生命周期 3. 全局变量3.1 函数不能直接修改全局变量的引用3.2 在函数内部修改全局变量的值3.3 全局变量定义的位置3.4 全局变量命名的建议 1.局部变量和全局变量 (1)局部变量 …

Spring 创建bean的流程

Bean的创建流程 创建bean流程 Spring 三级缓存 循环依赖的解决流程: 因为成品和半成品对象无法放在都一个map,同时半成品不能暴露出来使用,因此Spring提出三级缓存来解决循环依赖问题 三级缓存定义如下: /** 一级缓存 单例缓存…

贪心算法(7)(java) 分发饼干

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸 s[j…

鸿蒙路由 HMrouter 配置及使用一

1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中,配置useNormalizedOHMUrl属性为true (我这项目创…

基于图神经网络(GNN)的节点分类实战:从GCN到GraphSAGE

图神经网络(GNN)是一种专门用于处理图结构数据的深度学习模型,广泛应用于社交网络分析、推荐系统和生物信息学等领域。图卷积网络(GCN)是GNN的经典方法,而GraphSAGE则通过引入采样机制进一步提升了其性能。本文将通过一个完整的实战案例,展示如何使用GCN和GraphSAGE对图…