1. 程式人生 > >java集合ArrayList

java集合ArrayList

陣列可以儲存多個元素,但在某些情況下無法確定到底要儲存多少個元素,此時陣列將不再適用,因為陣列的長度不可變。

為了儲存這些數目不確定的元素,JDK中提供了一系列特殊的類,這些類可以儲存任意型別的元素,並且長度可變,統稱為集合。

ArrayList集合是程式中最常見的一種集合,它屬於引用資料型別(類)。在ArrayList內部封裝了一個長度可變的陣列,當存入的元素超過陣列長度時,ArrayList會在記憶體中分配一個更大的陣列來儲存這些元素,因此可以將ArrayList集合看作一個長度可變的陣列。

 

1建立集合

導包:import java.util.ArrayList;

建立物件:

ArrayList<要儲存元素的資料型別> 變數名 = new ArrayList<要儲存元素的資料型別>();

 

與其他普通的引用資料型別建立方式完全相同,但是要指定容器中儲存的資料型別,

集合中儲存的元素,只能為<>括號中指定的資料型別元素

<要儲存元素的資料型別> 中的資料型別必須是引用資料型別,不能是基本資料型別

 

28種基本資料型別所對應的引用資料型別表示形式

基本資料型別

對應的引用資料型別表示形式

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

他們使用的方式是一樣的,只是右面的這些可以呼叫方法,屬性,

資料範圍,除了原有的那些,還可以為null

(這也是普通變數和物件的區別,變數不能呼叫方法和屬性,物件可以)

 

3集合中常用方法

方法宣告

功能描述

boolean addObject obj

將指定元素obj追加到集合的末尾

Object getint index

返回集合中指定位置上的元素

int size()

返回集合中的元素個數

boolean addint index,  Object obj

將指定元素obj插入到集合中指定的位置

Object removeint index

從集合中刪除指定index處的元素,返回該元素

void clear()

清空集合中所有元素

Object setint index, Object obj

用指定元素obj替代集合中指定位置上的元素

 

說明:

1所有類都是繼承Object(以後會再講)

2addobj傳的就是一個物件,返回值是布林值,true表示新增成功,但這個值沒什麼實際意義

3getindex傳一個下標,集合裡叫索引。與陣列的arr[下標]相同的含義。這裡注意,如果超出長度,也會報異常,叫索引越界異常

4size()返回集合中的元素個數,(相當於陣列的length屬性),這樣就知道了長度,就可以遍歷了

5addindex, obj這就是方法過載

6removeindex傳入下標,返回刪的值

7clear()清空

8setindex, obj相當於修改, 傳入(下標,元素),返回值是被替代的那個元素

 

4集合的遍歷和方法應用

//集合的相關操作
import java.util.ArrayList;
class  Demo02 
{
	public static void main(String[] args) 
	{
		ArrayList<Integer> list=new ArrayList<Integer>();		

		boolean flag=list.add(1);
		System.out.println(flag); //true,表示存入成功,這個值沒什麼實際意義
		
		//新增元素
		list.add(2);
		list.add(5);

		//獲取元素
		System.out.println(list.get(0)); 
		System.out.println(list.get(1));
		System.out.println(list.get(2));

		//集合的長度
		System.out.println("集合的長度是"+list.size());

		System.out.println("----------");

		//在集合的指定位置插入元素
		list.add(0,8000);

		//刪除集合中指定的元素
		int ele=list.remove(1);
		System.out.println("被刪除的元素為"+ele);

		//替換
		int before=list.set(0,5000);
		System.out.println("被替換的元素為"+before);

		System.out.println("----------");

		//集合的遍歷
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}

		//清空集合
		list.clear();
	}
}