数组的长度一旦确定,就不可以发生改变
但是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]
   }
}