java集合ArrayList
陣列可以儲存多個元素,但在某些情況下無法確定到底要儲存多少個元素,此時陣列將不再適用,因為陣列的長度不可變。
為了儲存這些數目不確定的元素,JDK中提供了一系列特殊的類,這些類可以儲存任意型別的元素,並且長度可變,統稱為集合。
ArrayList集合是程式中最常見的一種集合,它屬於引用資料型別(類)。在ArrayList內部封裝了一個長度可變的陣列,當存入的元素超過陣列長度時,ArrayList會在記憶體中分配一個更大的陣列來儲存這些元素,因此可以將ArrayList集合看作一個長度可變的陣列。
1建立集合
導包:import java.util.ArrayList;
建立物件:
與其他普通的引用資料型別建立方式完全相同,但是要指定容器中儲存的資料型別,
集合中儲存的元素,只能為<>括號中指定的資料型別元素
<要儲存元素的資料型別> 中的資料型別必須是引用資料型別,不能是基本資料型別
2:8種基本資料型別所對應的引用資料型別表示形式
基本資料型別 |
對應的引用資料型別表示形式 |
byte |
Byte |
short |
Short |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
他們使用的方式是一樣的,只是右面的這些可以呼叫方法,屬性,
資料範圍,除了原有的那些,還可以為null。
(這也是普通變數和物件的區別,變數不能呼叫方法和屬性,物件可以)
3集合中常用方法
方法宣告 |
功能描述 |
boolean add(Object obj) |
將指定元素obj追加到集合的末尾 |
Object get(int index) |
返回集合中指定位置上的元素 |
int size() |
返回集合中的元素個數 |
boolean add(int index, Object obj) |
將指定元素obj插入到集合中指定的位置 |
Object remove(int index) |
從集合中刪除指定index處的元素,返回該元素 |
void clear() |
清空集合中所有元素 |
Object set(int index, Object obj) |
用指定元素obj替代集合中指定位置上的元素 |
說明:
1)所有類都是繼承Object(以後會再講)
2)add(obj)傳的就是一個物件,返回值是布林值,true表示新增成功,但這個值沒什麼實際意義
3)get(index)傳一個下標,集合裡叫索引。與陣列的arr[下標]相同的含義。這裡注意,如果超出長度,也會報異常,叫索引越界異常
4)size()返回集合中的元素個數,(相當於陣列的length屬性),這樣就知道了長度,就可以遍歷了
5)add(index, obj)這就是方法過載
6)remove(index)傳入下標,返回刪的值
7)clear()清空
8)set(index, 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(); } }