数组: 数组的长度一旦确定,就不可更改
ArrayList集合 : 长度可以任意更改

ArrayList常用方法:
public boolean add(E e): 向集合中添加元素参数类型与泛型一致
public E get(int index): 从集合中获取元素,参数是索引,返回值为对应位置的元素
public E remove(int index); 从集合中删除元素,参数是索引,返回值为被删对象
public int size(): 获取集合的长度,返回值为集合包含的长度

1.创建ArrayList集合
格式:
ArrayList 对象名 = new ArrayList();
其中E表示泛型,在<>中

ArrayList<E> list = new ArrayList();

泛型: 就是装在集合中的元素全部统一的类型.
注意:泛型必须是引用数据类型,不能是基本数据类型
实列:String

//创建了一个ArrayList集合,集合名称为list,里面装的全是String类型的数据
ArrayList<String> list = new ArrayList();//注意:在jdk1.7及以后,<>里可以不写内容,但是<>一定要写

2.向集合中加入元素 add
格式:
对象名.add(String类型数据);

ArrayList<String> list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
System.out.println(list);//[张三,李四,王五]

3.从集合中获取元素 get (注:索引从0开始)
格式:
对象名.get(索引值);

//我想获取李四
String name = list.get(1);//(1)从左往右第二个数据
System.out.println("索引值为1的位置是:"+name);//索引值为1的位置是:李四

4.从集合中删除元素 remove (注:索引从0开始)
格式:
对象名.remove(索引值);

我想删除张三
String who =  list.remove(0);
System.out.println("被删除的是:"+name);//被删除的是:张三

5.获取集合的长度 size
格式;
数据类型 size = 对象名.size();

int size = list.size();
System.out.println("集合长度:"+size);//2

6.遍历集合

ArrayList<String> list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
//开始遍历
for(int i = 0;i < list.size(); i++){
	System.out.println(list.get(i));
}

7.如果要向ArrayList中存储基本类型数据,必须使用基本类型对应的包装类
注意:泛型只能是引用类型,不能是基本数据类型.(因为集合保存的都是地址值,基本数据类型没有地址值)

基本类

包装类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

character

boolean

Boolean

自动装箱:基本数据类型 ----> 引用数据类型(包装类型)
自动拆箱;引用数据类型(包装类型)----->基本数据类型
举例: int Integer

ArrayList<Integer> list = new ArrayList();
list.add(100);
list.add(200);
list.add(300);
System.out.println(list);//[100,200,300]

练习
生成5个1–20之间的整数,添加到集合,并遍历

public static void main(String[] args) {
	ArrayList<Integer> list = new ArrayList();
	Random r = new Random();//生成随机数
	for(int i = 0; i < 5;i++){	//用for循环生成六个随机数
		int num = r.nextInt(20)+1;//范围是20以内,包括20
		list.add(num);			//将每次循环的结果存入集合
	}
	for(int i = 0; i< list.size(); i++){//遍历
		System.out.println(list.get(i));//打印
		}
	}