1.为什么有可变数组ArrayList:
int[] arr = new int[5]; 定长数组,容量是固定了的,不可变数组,无法动态的增加或删除
2.可变数组的核心作用:
动态的对数组执行 增删查改 的操作
3.格式:
ArrayList<E> list = new ArrayList<E>();
java9开始:后面的泛型可以不标注: ArrayList<E> list = new ArrayList<>();
E: 泛型---element--广泛的类型 确定存放的类型
基本类型的包装类 + 引用类型
以前只能储存引用类型,从JDK1.5开始,基本类型可以和对应的包装类进行自动装箱拆箱
装箱:基本类型-->包装类
拆箱:包装类-->基本类型
储存基本类型:除去int(Integer)和char(Character) 其他类型的首字母大写
4.方法:
直接打印数组名字按固定格式打印出数组内容:[value1,value2,....] 如:System.out.print(list); 输出结果为:[1,5,69,52]
(1)增加值到数组(增) :list.add(); 因为ArrayList实现了List接口,List可以添加并打印重复的值,所以ArrayList也可以:
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<>();
array.add(1);
array.add(1);
array.add(2);
System.out.println(array);
}
输出结果为:1 1 2
(2)取值 (查) :list.get(index);
(3)设置(修改)值 (改) :list.set(index,value);
(4)删除值(删) :list.remove(index);
(5)清空 :list.clear();
(6)判断是否存在 :list.contains(value); System.out.println(list.contains(value)); 输出结果为true或者false
(7)可变数组转为不可变数组 :Object[] array = list.toArray(); 注意:array(固定数组)只能为Object型
(8)长度 :list.size();