我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

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

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

    ArrayList集合初始化及扩容方式

    这篇文章主要介绍了关于ArrayList集合初始化及扩容方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-13

    java中ArrayList集合的扩容机制是什么

    这篇文章主要讲解了“java中ArrayList集合的扩容机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中ArrayList集合的扩容机制是什么”吧!1、扩容要看添加方法,
    2023-06-20

    ArrayList与linkedList的用法及扩容方式是什么

    本文小编为大家详细介绍“ArrayList与linkedList的用法及扩容方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ArrayList与linkedList的用法及扩容方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路
    2023-07-05

    C++聚合体初始化的方法是什么

    本篇内容介绍了“C++聚合体初始化的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聚合体初始化(aggregate initial
    2023-07-05

    基于ArrayList初始化长度的作用及影响是什么

    这篇“基于ArrayList初始化长度的作用及影响是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于ArrayList
    2023-07-05

    Java中ArrayList初始化容量大小为10的原因是什么

    这篇文章主要讲解了“Java中ArrayList初始化容量大小为10的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中ArrayList初始化容量大小为10的原因是什么”吧
    2023-07-02

    Spring容器初始化register与refresh方法是什么

    这篇文章主要讲解了“Spring容器初始化register与refresh方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring容器初始化register与refresh方法是
    2023-07-02

    vue初始化data方法是什么

    今天小编给大家分享一下vue初始化data方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue初始化data方法有
    2023-07-04

    pycharm初始化的方法是什么

    PyCharm的初始化方法是通过安装并打开PyCharm,在首次打开时,会出现一个“Welcome to PyCharm”界面,用户可以根据自己的需求进行配置和初始化。以下是PyCharm初始化的一般步骤:1. 下载并安装PyCharm:从
    2023-09-13

    Hugo游乐场内容初始化的方法是什么

    这篇“Hugo游乐场内容初始化的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Hugo游乐场内容初始化的方法是什么
    2023-07-05

    linux初始化的方法是什么

    Linux的初始化方法可以通过执行以下步骤来完成:1. 启动计算机并进入BIOS设置,在启动选项中选择从可引导介质(如硬盘或USB驱动器)启动。2. 安装Linux操作系统。可以选择通过光盘、USB驱动器或通过网络进行安装。根据选择的发行版
    2023-08-30

    c++数组初始化的方法是什么

    C++中有多种方式可以初始化数组:1. 使用赋值语句逐个初始化数组元素。```cppint arr[5];arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;arr[4] = 5;```2. 使用初始化列
    2023-09-28

    java初始化数组的方法是什么

    Java中初始化数组有以下几种方法:1. 静态初始化:在声明数组的同时直接为数组元素赋值。```javaint[] arr = {1, 2, 3, 4, 5};```2. 动态初始化:先声明数组,然后再为数组元素赋值。```javaint[
    2023-08-29

    golang数组初始化的方法是什么

    在Go语言中,可以使用以下方法初始化数组:1. 使用var关键字声明数组,并在声明时指定数组的长度,数组的元素会被自动初始化为对应类型的零值。```var arr [5]int // 声明一个长度为5的int类型数组,元素都被初始化为0``
    2023-09-27

    delphi数组初始化的方法是什么

    在Delphi中,有几种初始化数组的方法:1. 手动初始化:可以通过逐个指定数组元素的值来手动初始化数组。例如:```delphivararr: array[0..2] of Integer;beginarr[0] := 1;arr[1]
    2023-09-22

    android初始化页面的方法是什么

    在Android中,可以通过以下几种方法来初始化页面:1. 在Activity的onCreate()方法中进行初始化操作。onCreate()方法是Activity的生命周期方法之一,在Activity创建时会调用该方法。可以在这个方法中进
    2023-08-09

    SpringBoot中的Bean初始化方法是什么

    本篇内容介绍了“SpringBoot中的Bean初始化方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!注解说明使用注解: @Post
    2023-06-21

    java变量的初始化方法是什么

    Java变量的初始化方法有以下几种:1. 声明变量时直接赋值:可以在声明变量时直接为其赋初值,例如:```javaint num = 10;String name = "John";```2. 构造函数初始化:可以在类的构造函数中为成员变量
    2023-09-15

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录