Java中ArrayList集合
一、ArrayList介紹
1.ArrayList繼承關係
2.定義
public class ArrayList<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
3.簡介
1. ArrayList是一個可變陣列,與Java中陣列相比,它的容量是動態增長的,它繼承自AbstractList,實現了List, RandomAccess, Cloneable, java.io.Serializable這些介面。 2. ArrayList繼承AbstractList,實現了List,提供了對集合元素進行增、刪、改、查等操作的方法。 3. ArrayList 實現了RandmoAccess介面,即提供了隨機訪問功能。 4. ArrayList 實現了Cloneable介面,即覆蓋了函式clone(),能被克隆。 5. ArrayList 實現java.io.Serializable介面,即ArrayList支援序列化,能通過序列化去傳輸。 6. 與Vector的不同之處在於,ArrayList的相關操作不是同步的,也就是說ArrayList的相關操作是執行緒不安全的,建議在單執行緒中使用。
二、ArrayList構造方法
- 除Connection介面規範的建議的兩個構造方法之外,還有一個指定初始容量的構造方法
三、ArrayList中的方法
- 除了實現List 介面之外,該類還提供了一些操縱內部陣列elementData大小的方法
四、ArrayList資料結構
ArrayList中包含兩個重要變數
1.elementData
elementData是ArrayList中儲存資料的Object[],它儲存新增到ArrayList中的元素,elementData實現了一個動態陣列,我們可以用建構函式ArrayList(int initialCapacity)建立ArrayList物件並指定容量為initialCapacity,如果用建構函式ArrayList()建立ArrayList物件,預設的容量為10;
2.size
1. size是ArrayList的實際容量;
2. 由於ArrayList實現的是動態陣列的效果,所以陣列的容量是可以動態增長的,每次新增元素的時候都會判斷新增後的容量是否超出現有容量,如果超出現有容量則容量會進行自動增長,在不同版本的JDK中具體增長方式也有所不同,例如在JDK1.8中,具體增長方式:新的容量=原容量+(原容量>>1);
五、ArrayList遍歷方式
1.迭代器遍歷
List<String> list=new ArrayList<String>();
list. add("a");
list.add("b");
list.add("c");
Iterator<String> it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
2.隨機訪問遍歷
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
for(int i=0;i<list.size();i++){
System.err.println(list.get(i));
}
3.for-each迴圈遍歷
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
for (String string : list) {
System.out.println(string);
}
相關推薦
Java中ArrayList集合巢狀儲存和遍歷
student類: package day16_Test; /* * 學生類: * 成員變數:姓名、年齡 * 成員方法 * 構造方法 * *
Java中ArrayList集合
一、ArrayList介紹 1.ArrayList繼承關係 2.定義 public class ArrayList<E> extends AbstractList<E&g
Java中的集合詳解,結合 ArrayList、HashSet 的區別以及HashCode的作用。
Java中的集合: (1)Collection List(有序,可重複) ArrayList
JAVA中有序集合ArrayList/LinkedList/Vector 詳解
add:增加元素,兩個引數的制定位置增加 size:長度 get:獲取第i個 set:修改制定位置的元素 remove:可以放下標,也可以放元素;ps:如果刪除的元素存在多個,刪除第一個;可以remove(null);返回值:如果刪除元素了,返回true,沒有刪除返回false indexOf/lastIn
JAVA中的集合原始碼分析一:ArrayList的內部實現原理
作為以java為語言開發的android開發者,集合幾乎天天都要打交道,無論是使用頻率最高的ArrayList還是HashSet,都頻繁的出現在平時的工作中。但是其中的原理之前卻一直沒深入探究,接下來記錄一下這次自己學習ArrayList原始碼的過程。 一.構造方法:
Java中的集合之ArrayList,Vector和Stack
這三個集合型別,其底層都是陣列實現的。討論集合關注的問題: 底層資料結構 增刪改查方式 初始容量,擴容方式,擴容時機 執行緒安全與否 是否允許空,是否允許重複,是否有序 ArrayList ArrayList是
淺析Java中的集合包(ArrayList,LinkedList,Vector, Stack,HashSet,TreeSet,HashMap,TreeMap)
集合包是Java中最常用的包,它最常用的有Collection和Map兩個介面的實現類,Collection用於存放多個單物件,Map用於存放Key-Value形式的鍵值對。 Collection中常用的又分為兩種型別的介面:List和Set,兩者最明顯
Java中list集合ArrayList 中contains包含的使用
本示例使用List介面的實現類ArrayList,初始化一個列表物件list,並呼叫contains方法判斷列表中是否包含"login"的字串。 List<String> list=new ArrayList<String>(); list.add
java中ArrayList和LinkedList區別
插入 list 新的 查找 arr tro 基於 列表 時間復雜度 ArrayList和LinkedList最主要的區別是基於不同數據結構 ArrayList是基於動態數組的數據結構,LinkedList基於鏈表的數據結構,針對這點,從時間復雜度和空間復雜度來看主要區別:
java中的集合
基本數據類型 固定 返回 rabl borde lean string類 alt 技術 接口 java.lang.Iterable 是 java.util.Collection 接口的 父接口, 但出現時間較晚 不考慮 接口 java.util.Collection 接
Java中Arraylist源碼分析
如何 and 檢索 介紹 包括 com 這就是 pac 程序 前言:ArrayList作為我們常用的一個集合數據類型,我們在代碼中經常用它來裝載數據,可謂是和HashMap一樣常用的集合類型了。我們經常用它,那麽就有必須知道它的內部工作原理,比如它是如何添加進去數據的,它
Java中List集合的遍歷
java list 集合 遍歷 一、對List的遍歷有三種方式 List<String> list = new ArrayList<String>(); list.add("testone"); list.add(
Java中的集合框架
entry val 集合類 bsp 增刪改查 hset 集合框架 collect 映射關系 定義: Java中的集合類:是一種工具類,就像是容器,存儲任意數量的具有共同屬性的對象。 作用: 集合可以: 1、在類的內部,對數據進行組織; 2、簡單而快速的搜索大數量的條目;
java 中關於集合類的整理02
cto 對象 arr 數組 bsp 有一個 只有一個 集合 java 四. 具體的集合 2. ArrayList 數組列表 註: ArrayList類 與 Vector類 有什麽區別呢? 答:Vector類的所有方法都是同步的,所以說Vector類是線程安全的,所以兩個線程
Java中arraylist和linkedlist源代碼分析與性能比較
rom fin java 獲取 color () serializa padding previous Java中arraylist和linkedlist源代碼分析與性能比較 1,簡單介紹 在java開發中比較經常使用的數據結構是arra
Java中List集合遍歷的三種方式
asn tex iter for nbsp next next() ray string 首先創建一個List集合: List<String> list = new ArrayList<String>();list.add("name"); list
java中Set集合的遍歷方法
基本數據類型 對象 叠代器 比較 for hashset 循環 sta ins S兒童集合的遍歷: 第一種:for增強循環 Set<String> set = new HashSet<String>(); for (String str : set
Java中的集合(Set,List,Map)
部分 開始 replace from min() eal util 此外 不同的 ******************collections類總結*************************** JAVA集合主要分為三種類型: Set(集) List(列表
【知了堂學習筆記】java中常用集合的理解
style out hset 篩選 arraylist list 內容 必備 foreach 最近學習了java中常用集合類的一些知識,在這裏作為一只小白,我來談談我的理解,順帶總結知識點。 引入:在沒有接觸之前,聽到集合,給我感覺是想到了數學中的集合一樣,裏面存放著一
Java中的集合概述
compareto eset tab equals() face lan 子類 空間 都差不多 Java中的集合類有兩個重要的分支,分別是接口Collection(包括List,Set等)和接口Map。 由於HashSet的內部實現原理使用了HashMap,所以我們先來了解