数组:长度是固定的,无法适应数据变化的需求。
java.util.ArrayList 集合类:是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。
ArrayList使用步骤:
java.util.ArrayList < E > :该类需要 import导入使后使用。
< E >:表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:
ArrayList<String>,ArrayList<Student>
注意:泛型只能是引用类型,不能是基本类型。如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer 【特殊】
long Long
float Float
double Double
char Character 【特殊】
boolean Boolean
public class Demo05ArrayListBasic {
public static void main(String[] args) {
ArrayList<String> listA = new ArrayList<>();
// 错误写法!泛型只能是引用类型,不能是基本类型
// ArrayList<int> listB = new ArrayList<>();
ArrayList<Integer> listC = new ArrayList<>();
listC.add(100);
listC.add(200);
System.out.println(listC); // [100, 200]
int num = listC.get(1);
System.out.println("第1号元素是:" + num);
}
}
从JDK 1.5+开始,支持自动装箱、自动拆箱。
自动装箱:基本类型 --> 包装类型
自动拆箱:包装类型 --> 基本类型
创建基本格式:
ArrayList<String> list = new ArrayList<String>();
在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:
ArrayList<String> list = new ArrayList<>();
查看成员方法:
public boolean add(E e); //将指定的元素添加到此集合的尾部
参数 E e ,在构造ArrayList对象时,< E > 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据类型的对象。
使用ArrayList类,存储三个字符串元素,代码如下:
public class TestStudentArrayList{
public static void main(String[] args){
//创建学生数组
ArrayList<String> list = new ArrayList<String>();
//创建学生对象(这里的学生对象用String代替了)
String s1 = "曹操";
String s2 = "刘备";
String s3 = "孙权";
//打印学生ArrayList集合
System.out.println(list);
//把学生对象作为元素添加到集合
list.add(s1);
list.add(s2);
list.add(s3);
//打印学生ArrayList集合
System.out.println(list);
}
}
常用方法和遍历:
对于元素的操作,基本体现在——增、删、查。常用的方法有:
public boolean add(E e);//向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
//备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
//但是对于其他集合(今后学习)来说,add添加动作不一定成功。
public E get(int index);//从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
public E remove(int index);//从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
public int size();//获取集合的尺寸长度,返回值是集合中包含的元素个数。