数组: 数组的长度一旦确定,就不可更改
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));//打印
}
}