返回顶部
首页 > 资讯 > 精选 >ArrayList集合初始化及扩容方法是什么
  • 586
分享到

ArrayList集合初始化及扩容方法是什么

2023-07-05 11:07:56 586人浏览 安东尼
摘要

这篇文章主要介绍“ArrayList集合初始化及扩容方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ArrayList集合初始化及扩容方法是什么”文章能帮助大家解决问题。ArrayList集

这篇文章主要介绍“ArrayList集合初始化及扩容方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ArrayList集合初始化及扩容方法是什么”文章能帮助大家解决问题。

    ArrayList集合初始化及扩容

    ArrayList 集合

    默认初始化容量为10(底层先创建了一个长度为0的数组,当添加第一个元素的时候,初始化容量为10)

    集合底层为一个Object[]数组

    构造方法:

    new ArrayList();new ArrayList(20);

    ArrayList集合的扩容:原容量的1.5倍。

    ArrayList集合的底层是数组,怎么优化

    尽可能的减少扩容。因为数组扩容效率比较低,建议在使用Arraylist集合的时候预估计元素的个数,给定一个初始化容量。

    数组优点:检索效率比较高

    数组缺点:随机增删元素效率比较低

    向数组末尾添加元素,效率很高,不受影响

    面试官经常问的一个问题:

    这么多集合中,你用那个集合最多?

    答:ArrayList集合

    因为往数组末尾添加元素,对效率不受影响。

    另外,我们检索查找某个元素的操作比较多。

    package Collection;import java.util.ArrayList;import java.util.List;public class ArrayLisTest01 {    public static void main(String[] args) {        List l1=new ArrayList();        //集合的size方法是获取当前集合元素的个数,不是获取集合的容量        System.out.println(l1.size());        List l2=new ArrayList(20);        System.out.println(l2.size());    }}

    ArrayList扩容机制(原理)

    ArrayList扩容的本质就是计算出新的扩容数组的size后实例化,并将原有数组内容复制到新数组中去。(不是原数组,而是新数组然后给予数组对象地址)。

    默认情况下,新的容量会是原容量的1.5倍。 新容量=旧容量右移一位(相当于除于2)在加上旧容量

    ArrayList 的底层是用动态数组来实现的。我们初始化一个ArrayList 集合还没有添加元素时,其实它是个空数组,只有当我们添加第一个元素时,内部会调用扩容方法并返回最小容量10,也就是说ArrayList 初始化容量为10。

    当前数组长度小于最小容量的长度时(前期容量是10,当添加第11个元素时就就扩容),便开始可以扩容了,ArrayList 扩容的真正计算是在一个grow()里面,新数组大小是旧数组的1.5倍,如果扩容后的新数组大小还是小于最小容量,那新数组的大小就是最小容量的大小,后面会调用一个Arrays.copyof方法,这个方法是真正实现扩容的步骤。

    关于“ArrayList集合初始化及扩容方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: ArrayList集合初始化及扩容方法是什么

    本文链接: https://lsjlt.com/news/351472.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • ArrayList集合初始化及扩容方法是什么
      这篇文章主要介绍“ArrayList集合初始化及扩容方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ArrayList集合初始化及扩容方法是什么”文章能帮助大家解决问题。ArrayList集...
      99+
      2023-07-05
    • ArrayList集合初始化及扩容方式
      目录ArrayList集合初始化及扩容ArrayList 集合ArrayList扩容机制(原理)总结ArrayList集合初始化及扩容 ArrayList 集合 1.默认初始化容量为...
      99+
      2023-03-13
      ArrayList集合初始化 ArrayList扩容 ArrayList初始化
    • java中的ArrayList集合的初始化方式
      概述ArrayList是一个以动态数组为基础实现的非线程安全的集合,ArrayList的元素可以为空、可以重复,同时又是有序的(读取和存放的顺序一致 )。ArrayList继承AbstractList,实现了List、RandomAcces...
      99+
      2018-04-25
      java基础 java ArrayList 集合 初始化
    • java中ArrayList集合的扩容机制是什么
      这篇文章主要讲解了“java中ArrayList集合的扩容机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中ArrayList集合的扩容机制是什么”吧!1、扩容要看添加方法,...
      99+
      2023-06-20
    • ArrayList与linkedList的用法及扩容方式是什么
      本文小编为大家详细介绍“ArrayList与linkedList的用法及扩容方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ArrayList与linkedList的用法及扩容方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路...
      99+
      2023-07-05
    • C++聚合体初始化的方法是什么
      本篇内容介绍了“C++聚合体初始化的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聚合体初始化(aggregate initial...
      99+
      2023-07-05
    • 基于ArrayList初始化长度的作用及影响是什么
      这篇“基于ArrayList初始化长度的作用及影响是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于ArrayList...
      99+
      2023-07-05
    • Java中为什么ArrayList初始化容量大小为10
      目录背景为什么HashMap的初始化容量为16?ArrayList的初始化容量是10吗?为什么ArrayList的初始化容量为10?小结背景 看ArrayList源码时,无意中看到A...
      99+
      2024-04-02
    • Spring容器初始化register与refresh方法是什么
      这篇文章主要讲解了“Spring容器初始化register与refresh方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring容器初始化register与refresh方法是...
      99+
      2023-07-02
    • Java中ArrayList初始化容量大小为10的原因是什么
      这篇文章主要讲解了“Java中ArrayList初始化容量大小为10的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中ArrayList初始化容量大小为10的原因是什么”吧...
      99+
      2023-07-02
    • pycharm初始化的方法是什么
      PyCharm的初始化方法是通过安装并打开PyCharm,在首次打开时,会出现一个“Welcome to PyCharm”界面,用户...
      99+
      2023-09-13
      pycharm
    • linux初始化的方法是什么
      Linux的初始化方法可以通过执行以下步骤来完成:1. 启动计算机并进入BIOS设置,在启动选项中选择从可引导介质(如硬盘或USB驱...
      99+
      2023-08-30
      linux
    • vue初始化data方法是什么
      今天小编给大家分享一下vue初始化data方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue初始化data方法有...
      99+
      2023-07-04
    • Hugo游乐场内容初始化的方法是什么
      这篇“Hugo游乐场内容初始化的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hugo游乐场内容初始化的方法是什么...
      99+
      2023-07-05
    • SpringBoot中的Bean初始化方法是什么
      本篇内容介绍了“SpringBoot中的Bean初始化方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!注解说明使用注解: @Post...
      99+
      2023-06-21
    • golang数组初始化的方法是什么
      在Go语言中,可以使用以下方法初始化数组:1. 使用var关键字声明数组,并在声明时指定数组的长度,数组的元素会被自动初始化为对应类...
      99+
      2023-09-27
      golang
    • c++数组初始化的方法是什么
      C++中有多种方式可以初始化数组:1. 使用赋值语句逐个初始化数组元素。```cppint arr[5];arr[0] = 1;ar...
      99+
      2023-09-28
      c++
    • java变量的初始化方法是什么
      Java变量的初始化方法有以下几种:1. 声明变量时直接赋值:可以在声明变量时直接为其赋初值,例如:```javaint num =...
      99+
      2023-09-15
      java
    • delphi数组初始化的方法是什么
      在Delphi中,有几种初始化数组的方法:1. 手动初始化:可以通过逐个指定数组元素的值来手动初始化数组。例如:```delphiv...
      99+
      2023-09-22
      delphi
    • spring中bean的初始化方法是什么
      在Spring中,bean的初始化可以通过两种方式来完成:使用@Bean注解的initMethod属性或者实现Initializin...
      99+
      2023-09-21
      spring
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作