ArrayList 的初始容量多少?

2024-08-29 02:48
文章标签 初始 arraylist 容量

本文主要是介绍ArrayList 的初始容量多少?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

List<Integer> list = new ArrayList<>(); list 的初始容量到底是多少

在 JDK 8 中 查看 ArrayList 源码

    /*** Constructs an empty list with an initial capacity of ten.*/public ArrayList() {this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}

上面的注释是 构造一个空数组 初始容量为 10 (JDK7中初始容量为10 ,注释应该是没及时更新),但是 查看 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 发现

    /*** Shared empty array instance used for default sized empty instances. We* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when* first element is added.*/private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

{} 其实就是个空数组,inflate when first element is added 就是说当第一个元素添加的时候才扩容(inflate)

这篇关于ArrayList 的初始容量多少?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116629

相关文章

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

List list = new ArrayList();和ArrayList list=new ArrayList();的区别?

List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。 List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了A

MySQL数据库介绍——初始数据库MySQL

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。  公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面: 一.数据库基础知识 1.什么是数据库 数据库的发展⼤致划分为以下⼏个阶段: 其种类⼤概有3种: 2.表 2.1数据类型 2.2主键 二.数据库技术构成 1.数据库系统 1.2

容器第三课,JDK源码分析,自己实现ArrayList数组扩容

package com.pkushutong.Collection;/*** 测试底层方法的实现,参照这JDK源码* @author dell**/public class Test02{private Object[] elementData;private int size;private int size(){return size;}private boolean isEmpty(){r

容器第二课,List,ArrayList,LinkedList,Vector用法详解

package com.pkushutong.Collection;import java.util.ArrayList;import java.util.Date;import java.util.List;public class Test01 {public static void main(String[] args) {List list = new ArrayList<>();/*

ArrayList与LinkedList区别总结

ArrayList在获取某个子对象时,效率更高。 LinkedList在插入和删除子对象时,效率更高。

【JAVA数据结构】简单洗牌算法——ArrayList(顺序表)使用实例

详细知识讲解请跳转:【JAVA数据结构】(ArrayList)顺序表-CSDN博客 一. 简单的洗牌算法 特殊知识须记: List < List<E> > 该语法情况比较特殊,相当于一个“二维数组”存着一个个线性表的结构,如图 这是用于洗牌中三个人的牌分配 基本流程: 我们想实现的是一副牌(去鬼牌),三个人玩,每个人开始五张牌,轮流摸。 以上述图片为例:    步骤一:设置

java 1.7之后的Arraylist容量增长机制

一直以来都错误的理解Arraylist的容量自增长是添加一个元素容量自动加1,偶然的聊起这个话题,才发现貌似我理解错了,跑去看了Arraylist的源代码才清楚了它的容量自增长机制并不是我所认为的那样。下面是Arraylist容量增长的源代码,附上一些注释,如果有不正确的还希望大家能给纠正~~~ 首先看一下ArrayList添加元素的方法: public boolean add

HashMap初始化指定容量后,遇到不够用时,还会扩容吗?

先说答案:会 public class temp{public static void main(String agrs[]){HashMap hashMap = new HashMap(20);System.out.println(hashMap.size);//输出0, 要记得 容量是容量,尺寸是尺寸for(int i=0;i,30; i++){hashMap.put(i,i);System

【JAVA数据结构】(ArrayList)顺序表

ArrayList 是Java集合框架中的一个类,底层使用的数据结构就是顺序表,它实现了List接口,提供了动态数组的功能,ArrayList可以根据需要自动进行扩容(不指定容量大小也能正常添加元素),允许存储任意类型的对象。 说白了,顺序表就是在数组上完成的增删查改。 ArrayList可以被认为是顺序表的一种实现 为了方便我们更好理解顺序表ArrayList运行原理,我们来模拟实现