欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

其他構造的源碼分析

利用其他 Collection 構建 ArrayList:

public ArrayList(Collection<? extends E> c) {
? ? elementData = c.toArray();
? ? if ((size = elementData.length) != 0) {
? ? ? ? // c.toArray might (incorrectly) not return Object[] (see 6260652)
? ? ? ? if (elementData.getClass() != Object[].class)
? ? ? ? ? ? elementData = Arrays.copyOf(elementData, size, Object[].class);
? ? } else {
? ? ? ? // replace with empty array.
? ? ? ? this.elementData = EMPTY_ELEMENTDATA;
? ? }
}

Collection<? extends E> c的含義:

  • 實現了Collection接口
  • <? extends E>: 你傳入的數據,泛型E自己后者E的子類

指定順序表初始容量:

public ArrayList(int initialCapacity) {
? ? if (initialCapacity > 0) {
? ? ? ? this.elementData = new Object[initialCapacity];
? ? } else if (initialCapacity == 0) {
? ? ? ? this.elementData = EMPTY_ELEMENTDATA;
? ? } else {
? ? ? ? throw new IllegalArgumentException("Illegal Capacity: "+
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?initialCapacity);
? ? }
}

指定容量等于0 根據之前分析的源碼可知add時 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA)這個判斷不會進入,第一次增加后增容的大小是1,然后一直是1.5倍的大小新增。

? ? 指定容量大于0 創建一個指定容量的數組
? ? 指定容量等于0 指向EMPTY_ELEMENTDATA(是一個大小為0的數組)
? ? 指定容量等于0 add時第一次增加后增容的大小是1,然后一直是1.5倍的大小新增。
? ? 指定容量小于0 拋出異常

創建ArrayList
public static void main(String[] args) {
? ? // ArrayList創建,推薦寫法
? ? // 構造一個空的列表
? ? List<Integer> list1 = new ArrayList<>();
? ? // 構造一個具有10個容量的列表
? ? List<Integer> list2 = new ArrayList<>(10);
? ? list2.add(1);
? ? list2.add(2);
? ? list2.add(3);
? ? // list2.add("hello"); // 編譯失敗,List<Integer>已經限定了,list2中只能存儲整形元素
? ? // list3構造好之后,與list中的元素一致
? ? List<Integer> list3 = new ArrayList<>(list2);
? ? // 避免省略類型,否則:任意類型的元素都可以存放,使用時將是一場災難
? ? List list4 = new ArrayList();
? ? list4.add("111");
? ? list4.add(100);
}

通過idea查看四個list中的數據

?

文章鏈接: http://www.qzkangyuan.com/22436.html

文章標題:其他構造的源碼分析

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

ArrayList的構造

2023-7-26 14:26:03

建站教程

ArrayList的使用方法

2023-7-27 14:49:06

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 安宁市| 万年县| 宣城市| 石嘴山市| 阳新县| 卓资县| 南平市| 南充市| 凤山县| 富阳市| 习水县| 千阳县| 三亚市| 遂川县| 临夏县| 壤塘县| 尚志市| 镇巴县| 霍林郭勒市| 定西市| 北安市| 十堰市| 忻城县| 宜兰市| 兴隆县| 江油市| 五台县| 无为县| 永定县| 普安县| 屏东县| 台北县| 班玛县| 斗六市| 亚东县| 仙桃市| 繁峙县| 家居| 正宁县| 登封市| 望都县|