數組可以保存多個元素,但在某些情況下無法確定到底要保存多少個元素,此時數組將不再適應,因爲數組的長度不可變。
爲了保存數目不確定的元素,jdk中提供了一系列特殊的類,這些類可以存儲任意元素,並且長度可變,統稱爲集合。這裏主要是ArrayList集合。
ArrayList集合是程序中最常見的一種集合,屬於引用數據類型。在ArrayList內部封裝了一些長度可變的數組,當存入的元素超過數組長度是,ArrayList會在內存中分配一個更大的數組來存儲,因此可以將ArrayList集合看作一個長度可變的數組。
1.創建集合的常用格式:
導包: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>();
2.集合中常用方法:
add () 將指定元素追加到集合的末尾
get (int index) 返回集合中指定位置上的元素
int size ( ) 返回集合中的元素個數
調用以上方法的示例代碼爲:
import java.util.ArrayList;
public class ArrayListDemo_1{
public static void main(String[] args){
//定義集合,存儲字符串元素
ArrayList<String> array = new ArrayList<String>();
//調用集合方法add存儲元素
array.add("abc");
array.add("itcast");
array.add("love");
array.add("java");
//輸出集合的長度,調用集合方法size, size方法的返回值類型 int
int size = array.size();
System.out.println(size);
//集合的方法get, 獲取元素後結果數據類型
String s = array.get(1);
System.out.println(s);
System.out.println(array.get(0));
System.out.println(array.get(1));
System.out.println(array.get(2));
System.out.println(array.get(3));
}
}
注意:ArrayList集合相當於是一個長度可變的數組,所以訪問集合中的元素也是採用索引方式訪問,第一個元素存儲在索引0的位置,第二個元素存儲在索引1的位置,依次類推。
3.集合的遍歷
通過集合遍歷,得到集合中的每個元素。集合的遍歷和數組的遍歷很像,都是通過索引的方式。
集合遍歷如下:
/*
集合的遍歷
集合的索引從0開始,到 size()-1
方法get(int index)
*/
import java.util.ArrayList;
public class ArrayListDemo_2{
public static void main(String[] args){
ArrayList<Integer> array = new ArrayList<Integer>();
array.add(121);
array.add(125);
array.add(123);
array.add(120);
array.add(128);
//對集合進行遍歷
//使用方法 size+get組合進行遍歷
for(int i = 0 ; i < array.size(); i++){
System.out.println( array.get(i) );
}
}
}
上邊的代碼中,第9行定義了一個可存儲int元素的集合;第10-14行,實現了將int類型的值存儲到集合中;第18-20行,實現遍歷集合元素。get方法返回值的類型爲集合中元素的類型。
4.集合中的其他常用方法
boolean add(int index, Object obj) | 將指定元素obj插入到集合中指定的位置 |
Object remve(int index) | 從集合中刪除指定index處的元素,返回該元素 |
void clear() | 清空集合中所有元素 |
Object set(int index, Object obj) | 用指定元素obj替代集合中指定位置上的元素 |