bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Java集合系列之ArrayList源碼分析-創新互聯

本篇分析ArrayList的源碼,在分析之前先跟大家談一談數組。數組可能是我們最早接觸到的數據結構之一,它是在內存中劃分出一塊連續的地址空間用來進行元素的存儲,由于它直接操作內存,所以數組的性能要比集合類更好一些,這是使用數組的一大優勢。但是我們知道數組存在致命的缺陷,就是在初始化時必須指定數組大小,并且在后續操作中不能再更改數組的大小。在實際情況中我們遇到更多的是一開始并不知道要存放多少元素,而是希望容器能夠自動的擴展它自身的容量以便能夠存放更多的元素。ArrayList就能夠很好的滿足這樣的需求,它能夠自動擴展大小以適應存儲元素的不斷增加。它的底層是基于數組實現的,因此它具有數組的一些特點,例如查找修改快而插入刪除慢。本篇我們將深入源碼看看它是怎樣對數組進行封裝的。首先看看它的成員變量和三個主要的構造器。

目前成都創新互聯已為上千多家的企業提供了網站建設、域名、網頁空間、網站托管維護、企業網站設計、錫山網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
//默認初始化容量
private static final int DEFAULT_CAPACITY = 10;

//空對象數組
private static final Object[] EMPTY_ELEMENTDATA = {};

//對象數組
private transient Object[] elementData;

//集合元素個數
private int size;

//傳入初始容量的構造方法
public ArrayList(int initialCapacity) {
  super();
  if (initialCapacity < 0) {
    throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity);
  }
  //新建指定容量的Object類型數組
  this.elementData = new Object[initialCapacity];
}

//不帶參數的構造方法
public ArrayList() {
  super();
  //將空的數組實例傳給elementData
  this.elementData = EMPTY_ELEMENTDATA;
}

//傳入外部集合的構造方法
public ArrayList(Collection<? extends E> c) {
  //持有傳入集合的內部數組的引用
  elementData = c.toArray();
  //更新集合元素個數大小
  size = elementData.length;
  //判斷引用的數組類型, 并將引用轉換成Object數組引用
  if (elementData.getClass() != Object[].class) {
    elementData = Arrays.copyOf(elementData, size, Object[].class);
  }
}

網站欄目:Java集合系列之ArrayList源碼分析-創新互聯
新聞來源:http://vcdvsql.cn/article24/cscsce.html

成都網站建設公司_創新互聯,為您提供外貿建站品牌網站設計企業建站商城網站網站營銷網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發