数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适应,因为数组的长度不可变。
为了保存数目不确定的元素,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替代集合中指定位置上的元素 |