ArrayList集合初始化容量及扩容

ArrayList集合初始化容量及扩容

package com.lichennan.collection.list;

import java.util.ArrayList;
import java.util.List;

/*
   arraylist集合:
    1.默认初始化容量10(底层先创建了一个长度为0的数组,当添加第一个元素的时候,初始化容量10。)
    2.集合底层是一个object[]数组。
    3.构造方法:
         new arraylist();
         new arraylist(20);
    4.Arraylist集合的扩容:
        原容量的1.5倍。
        Arraylist集合底层是数组,怎么优化?
        尽可能少的扩容。因为数组扩容效率比较低,建议在使用Arraylist集合的时候
        预估元素的个数,给定一个初始化容量。
    5.数组优点:
       检索效率比较高
    6.数组缺点:
       随机增删元素效率比较低。
    7.向数组末尾添加元素,效率很高,不受影响。
 */
public class ArrayListTest01 {
    public static void main(String[] args) {
        //默认初始化容量10
        List list1 = new ArrayList();
        System.out.println(list1.size());
        //size方法是获取当前集合中元素的个数
       //指定初始化容量
        List list2 = new ArrayList(20);
        System.out.println(list2.size());
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        list1.add(6);
        list1.add(7);
        list1.add(8);
        list1.add(9);
        list1.add(10);
        System.out.println(list1.size());
        list1.add(11); //添加额外元素 扩容到原容量的1.5倍 看源码
        System.out.println(list1.size());
    }
}

在这里插入图片描述

集合Arraylist的另一个构造方法

 package com.lichennan.collection.list;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;

/*
   集合Arraylist的构造方法
 */
public class ArrayListTest02 {
    public static void main(String[] args) {
        List mylist1 = new ArrayList();
        List mylist2 = new ArrayList(100);

        //创建一个HashSet集合
        Collection c = new HashSet();
        c.add(100);
        c.add(200);
        c.add(900);
        c.add(50);
        //通过这个构造方法就可以将hashSet集合转换成list集合。
        List mylist3 = new ArrayList(c);
        for (int i = 0; i <mylist3.size() ; i++) {
            System.out.println(mylist3.get(i));
        }
    }


}

猜你喜欢

转载自blog.csdn.net/weixin_46554776/article/details/106169718