数组的长度一旦确定,就不可以发生改变
但是ArrayList集合的长度是可以随意变化的。使用ArrayList集合时要导包:import java.util.ArrayList;
对于ArrayList 来说,有一个尖括号代表泛型。
泛型:就是装在集合当中的所有元素,全都是统一的某种类型
【注意】泛型只能是引用类型,不能是基本类型
【注意事项】:
对于ArrayList集合来说,直接打印得到的不是地址,而是内容;如果内容是空,得到的是空的中括号:[ ]
例:
import java.util.ArrayList;
public class Demo02ArrayList{
public static void main(String[] args){
//创建一个ArrayList集合,集合名称是list,里面装的全都是String 字符串类型的数据
//备注:从JDK 1.7开始,右侧的尖括号内部可以不写,但是<>本身还是要写
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//[] 因为内容为空,所以得到一个空的中括号
//向集合当中添加一些数据,需要用到add方法
list.add("赵丽颖");
System.out.println(list);//[赵丽颖]
list.add("迪丽热巴");
list.add("古力娜扎");
System.out.println(list);//[赵丽颖,迪丽热巴,古力娜扎]
}
}
ArrayList当中的常用方法有:
public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表是否添加成功。
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用,但是对于其它集合(今后补充)来说,add添加动作不一定成功。
public E get(int index):从集合当中获取元素,参数是索引号,返回值就是对应位置的参数
public E remove(int index):从集合中删除元素,参数是索引值,返回值就是被删除的参数
public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。
例:
import java.util.ArrayList;
public class Demo03ArrayListMethod{
public static void main(String[] args){
ArrayList<String> list = new ArrayList<>();
//向集合中添加元素
boolean success = list.add("柳岩");
System.out.println(list);//[柳岩]
System.out.println("添加的动作是否成功:"+success);
list.add("迪丽热巴");
list.add("古力娜扎");
list.add("赵丽颖");
System.out.println(list);//[柳岩,迪丽热巴,古力娜扎,赵丽颖]
//从集合中获取元素:get 索引值从0开始
String name = list.get(2);
System.out.println("第2号索引值位置:"+name);
//从集合中删除元素:remove 索引值从0开始
String whoRemoved = list.remove(3);
System.out.println("被删除的人是:"+whoRemoved);
System.out.println(list);//[柳岩,迪丽热巴,古力娜扎]
//获取集合的长度尺寸,也就是其中元素的个数
int size = list.size();
System.out.println("集合的长度是:"+size);
}
}
上面说过泛型只能是引用类型,不能是基本类型,如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”
基本类型 包装类(引用类型、包装类型都位于jacva.lang包下)
byte Byte
short Short
int Integer 特殊
long Long
float Float
double Double
char Character 特殊
boolean Boolean
从JDK 1.5开始,支持自动装箱、自动拆箱
自动装箱:基本类型—>包装类型
自动拆箱:包装类型—>基本类型
例:
import java.util.ArrayList;
public class Demo04ArrayListBasic{
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
System.out.println(list);//[100,200]
}
}