ArrayList集合
在前面我們學習了數組,數組可以保存多個元素,但在某些情況下無法確定到底要保存多少個元素,此時數組將不再適用,因爲數組的長度不可變。例如,要保存一個學校的學生,由於不停有新生來報道,同時也有學生畢業離開學校,這時學生的數目很難確定。爲了保存這些數目不確定的元素,JDK中提供了一系列特殊的類,這些類可以存儲任意類型的元素,並且長度可變,統稱爲集合。在這裏,我們先介紹ArrayList集合,其他集合在後續課程中學習。
ArrayList集合是程序中最常見的一種集合,它屬於引用數據類型(類)。在ArrayList內部封裝了一個長度可變的數組,當存入的元素超過數組長度時,ArrayList會在內存中分配一個更大的數組來存儲這些元素,因此可以將ArrayList集合看作一個長度可變的數組。
- 集合的創建
創建集合的常用格式在此說明一下:
導包:import java.util.ArrayList;
創建對象:與其他普通的引用數據類型創建方式完全相同,但是要指定容器中存儲的數據類型:
ArrayList<要存儲元素的數據類型> 變量名 = new ArrayList<要存儲元素的數據類型>();
- 集合中存儲的元素,只能爲<>括號中指定的數據類型元素;
- “<要存儲元素的數據類型>”中的數據類型必須是引用數據類型,不能是基本數據類型;
下面給出8種基本數據類型所對應的引用數據類型表示形式:
基本數據類型 |
對應的引用數據類型表示形式 |
byte |
Byte |
short |
Short |
Int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
我們通過舉幾個例子,來明確集合的創建方式:
存儲String類型的元素
ArrayList<String> list = new ArrayList<String>();
存儲int類型的數據
ArrayList<Integer> list = new ArrayList<Integer>();
存儲Phone類型的數據
ArrayList<Phone> list = new ArrayList<Phone>();
- 集合中常用方法
接下來,我們來學習下ArrayList集合提供的一些常用方法,如下表:
方法聲明 |
功能描述 |
boolean add(Object obj) |
將指定元素obj追加到集合的末尾 |
Object get(int index) |
返回集合中指定位置上的元素 |
int size() |
返回集合中的元素個數 |
通過代碼演示上述方法的使用。ArrayListDemo01.java
import java.util.ArrayList;
public class ArrayListDemo01 {
public static void main(String[] args) {
// 創建ArrayList集合
ArrayList<String> list = new ArrayList<String>();
// 向集合中添加元素
list.add("stu1");
list.add("stu2");
list.add("stu3");
list.add("stu4");
// 獲取集合中元素的個數
System.out.println("集合的長度:" + list.size());
// 取出並打印指定位置的元素
System.out.println("第1個元素是:" + list.get(0));
System.out.println("第2個元素是:" + list.get(1));
System.out.println("第3個元素是:" + list.get(2));
System.out.println("第4個元素是:" + list.get(3));
}
}
強調一點,ArrayList集合相當於是一個長度可變的數組,所以訪問集合中的元素也是採用索引方式訪問,第一個元素存儲在索引0的位置,第二個元素存儲在索引1的位置,依次類推。
- 集合的遍歷
通過集合遍歷,得到集合中每個元素,這是集合中最常見的操作。集合的遍歷與數組的遍歷很像,都是通過索引的方式,集合遍歷方式如下:ArrayListDemo02.java
import java.util.ArrayList;
public class ArrayListDemo02 {
public static void main(String[] args) {
//創建ArrayList集合
ArrayList<Integer> list = new ArrayList<Integer>();
//添加元素到集合
list.add(13);
list.add(15);
list.add(22);
list.add(29);
//遍歷集合
for (int i = 0; i < list.size(); i++) {
//通過索引,獲取到集合中每個元素
int n = list.get(i);
System.out.println(n);
}
}
}
上述代碼中,第5行定義了一個可以存儲int元素的集合;第7-10行,實現將int類型數值存儲到集合中;第12-16行,實現遍歷集合元素。這裏要強調一點,get方法返回值的類型爲集合中元素的類型。
-
- 集合中的常用方法補充
ArrayList集合提供的一些常用方法,如下表:
方法聲明 |
功能描述 |
boolean add(int index, Object obj) |
將指定元素obj插入到集合中指定的位置 |
Object remve(int index) |
從集合中刪除指定index處的元素,返回該元素 |
void clear() |
清空集合中所有元素 |
Object set(int index, Object obj) |
用指定元素obj替代集合中指定位置上的元素 |
- boolean add(int index, Object obj)
- 功能:在集合中指定index位置,添加新元素obj
- 功能說明:假設集合list中有元素[“java”,“javaEE”],當使用add(1,“javaWeb”)後,集合list中的元素爲[“java”,“javaWeb”,“JavaEE”]。
- Object set(int index, Object obj)
- 功能:用指定元素obj替代集合中指定index位置的元素
- 功能說明:假設集合list中有元素[“java”,“javaEE”],當使用set(0,“javaWeb”)後,集合list中的元素爲[“javaWeb”,“JavaEE”]。
- Object remove(int index)
- 功能:從集合中刪除指定index處的元素,返回該元素
- 功能說明:假設集合list中有元素[“java”,“javaEE”],當使用remove(0)後,集合list中的元素爲[“JavaEE”],返回值爲“java”。
- void clear()
- 功能:清空集合中所有元素
- 功能說明:假設集合list中有元素[“java”,“javaEE”],當使用clear()後,集合list中的元素爲空[]。