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));
        }
    }


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章