1. 程式人生 > >Java中ArrayList集合

Java中ArrayList集合

一、ArrayList介紹

1.ArrayList繼承關係

ArrayListAPI

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構造方法

  1. 除Connection介面規範的建議的兩個構造方法之外,還有一個指定初始容量的構造方法
    ArrayList構造方法

三、ArrayList中的方法

  1. 除了實現List 介面之外,該類還提供了一些操縱內部陣列elementData大小的方法

四、ArrayList資料結構

ArrayList中包含兩個重要變數

1.elementData

elementData
elementData是ArrayList中儲存資料的Object[],它儲存新增到ArrayList中的元素,elementData實現了一個動態陣列,我們可以用建構函式ArrayList(int initialCapacity)建立ArrayList物件並指定容量為initialCapacity,如果用建構函式ArrayList()建立ArrayList物件,預設的容量為10;
預設的容量

2.size

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

相關推薦

JavaArrayList集合巢狀儲存和遍歷

student類: package day16_Test; /* * 學生類: * 成員變數:姓名、年齡 * 成員方法 * 構造方法 * *

JavaArrayList集合

一、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,兩者最明顯

Javalist集合ArrayList contains包含的使用

本示例使用List介面的實現類ArrayList,初始化一個列表物件list,並呼叫contains方法判斷列表中是否包含"login"的字串。 List<String> list=new ArrayList<String>(); list.add

javaArrayList和LinkedList區別

插入 list 新的 查找 arr tro 基於 列表 時間復雜度 ArrayList和LinkedList最主要的區別是基於不同數據結構 ArrayList是基於動態數組的數據結構,LinkedList基於鏈表的數據結構,針對這點,從時間復雜度和空間復雜度來看主要區別:

java集合

基本數據類型 固定 返回 rabl borde lean string類 alt 技術 接口 java.lang.Iterable 是 java.util.Collection 接口的 父接口, 但出現時間較晚 不考慮 接口 java.util.Collection 接

JavaArraylist源碼分析

如何 and 檢索 介紹 包括 com 這就是 pac 程序 前言:ArrayList作為我們常用的一個集合數據類型,我們在代碼中經常用它來裝載數據,可謂是和HashMap一樣常用的集合類型了。我們經常用它,那麽就有必須知道它的內部工作原理,比如它是如何添加進去數據的,它

JavaList集合的遍歷

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類是線程安全的,所以兩個線程

Javaarraylist和linkedlist源代碼分析與性能比較

rom fin java 獲取 color () serializa padding previous Java中arraylist和linkedlist源代碼分析與性能比較 1,簡單介紹 在java開發中比較經常使用的數據結構是arra

JavaList集合遍歷的三種方式

asn tex iter for nbsp next next() ray string 首先創建一個List集合: List<String> list = new ArrayList<String>();list.add("name"); list

javaSet集合的遍歷方法

基本數據類型 對象 叠代器 比較 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,所以我們先來了解