• 【Java集合】之ArrayList


    ArrayList

    一、概述

     默认初始化容量 10

     最大容量2147483647-8=2147483639

    扩容1.5倍

    测试

    public class TestArrayList {
        public static void main(String[] args) {
            List list = new ArrayList();
            A a = new A();
            list.add(new A());
            list.add(new B());
            list.add(new C());
            list.add(a);
            list.add(a);
            list.add(a);
            list.add(a);
            list.add(a);
            list.add(a);
            list.add(a);   //第10个
            list.add(a);   //第11个元素
    ​
            System.out.println(list);
        }
    }

    二、初始化

    使用IDEA调试

    List list = new ArrayList(); 初始化this.elementData={}

    elementData声明的注释:elementData是用于存放ArrayList元素的,ArrayList的容量就是这个数组的长度,如何空的而且elementData=DEFAULTCAPACITY_EMPTY_ELEMENTDATA的ArrayList,在添加第一个元素时会扩展大小到默认容量(10)

     

      

    三、Add

    list.add(new A()); 添加第一条

    进入ensureCapacityInternal(size+1)方法看看

    接着到grow()方法

    运行之后

    elementData由空变成了长度为10的数组

    当添加第11个元素时,size=10,所需存储的最小容量minCapacity=11,需要扩容

    扩容成10+10/2=15

    add总结

    1. ArrayList初始化为{},空的,当第一次添加元素时,会设置为默认容量(10)

    2. 当添加元素个数超出容量大小时,会扩容成原来的1.5倍

    四、Remove

    • list.remove(index)

    • list.remove(Object o)

     remove总结

    1.删除元素需要移动该元素后面的元素

    2.remove(Object o)只删除第一个匹配的元素

  • 相关阅读:
    react的路由权限控制
    react的路由中的switch和exact的使用
    react中antd的表格自定义展开
    webstorm的git操作使用
    ES6的相关语法
    vue导出文件下载
    vue如何解析xml文件 x2js
    ES6模板字符串
    彻底卸载微软拼音输入法
    systemverilog新增的always_comb,always_ff,和always_latch语句
  • 原文地址:https://www.cnblogs.com/tingtingzhou/p/10996131.html
Copyright © 2020-2023  润新知