数组的长度不可以改变
但是 ArrayList集合的长度是可以随意变化的
- 对于ArrayList来说,有一个尖括号< E > ,代表的是泛型
- 泛型:也就是装在集合中的所有元素,全都是【统一】的什么类型,这与数组相像,只能是一种类型
- 注意:泛型只能是引用类型,不能是基本数据类型。
- 注意:
- 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
- 如果内容为空,那么就会得到空的中括号,[]
//导包
import java.util.ArrayList;
public class Demo{
public static void main(String[] args) {
//创建一个ArrayList集合对象,名称为arr,里面装的全是String字符串数据类型
//从JDK1.7开始,右侧加括号里的内容可以不写,但是尖括号还是要写的
ArrayList<String> arr = new ArrayList<>();
//直接打印,得到的为空的[]
System.out.println(arr);
}
}
ArrayList中常见的方法有:
-
public boolean add(E e):向集合中添加元素,参数的类型和泛型一致。E对 照泛型
注意:对于ArrayList集合来说,add添加动作一定成功,所以返回值可用可不用,但是对于其他集合,add添加动作不一定成功 -
public E get(int index):从集合中获取元素,参数是索引编号,返回值就是对应位置的元素,编号从0开始,与数组相同
-
public E remove(int index):从集合中删除元素,参数是索引编号,返回值就是被删掉的元素
-
public int size():获取集合的长度,返回值就是集合中包含元素的个数
//创建一个ArrayList对象
ArrayList<String> arr = new ArrayList<>();
//向集合中添加元素:add
boolean success = arr.add("小强");
System.out.println(arr);
System.out.println("添加是否成功"+success);
System./out.println("--------------------------");
arr.add("旺财");
arr.add("李四");
arr.add("张三");
System.out.println(arr);
//打印为[小强,旺财,李四,张三]
//获取集合中的元素,get,索引值从0开始
String stu = arr.get(1);
System.out.println("获取到的是:"+stu);//旺财
System.out.println("------------");
//删除集合中的元素
String s = arr.remove(2);
System.out.println("被删除的元素是:"+s);//李四
System.out.println(arr);
//获取集合的长度
int num = arr.size();
System.out.println(num);//删除了一个元素,长度为3
//遍历集合
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
ArrayList集合如何储存基本数据类型:
如果希望向集合ArrayList中储存基本数据类型,必须使用基本类型对应的“包装类”
基本类型 | 包装类(引用类型,类位于java.lang包下) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
double | Double |
folat | Folat |
char | Character |
boolean | Boolean |
//使用int的包装类Integer,将interesting类型的数字存储进集合中
ArrayList<Integer> arr = new ArrayList<>();
arr.add(100);
arr.add(200);
System.out.println(arr);
//打印结果为[100,200]
ArrayList集合练习:
import java.util.ArrayList;
import java.util.Random;
/*
*用一个大集合存储20给随机数字,然后筛选其中的偶数元素,放入小集合中
* 自定义方法实现筛选
* */
public class DemoSmallList {
public static void main(String[] args) {
//创建ArrayList和Random类对象
ArrayList<Integer> arr = new ArrayList<>();
Random r = new Random();
//循环将随机数添加进集合
for (int i = 0; i < 20; i++) {
int num = r.nextInt(100);
arr.add(num);
}
System.out.println(arr);
//调用方法,返回的是一个集合,那么就用一个集合接收
ArrayList<Integer> arr1 = small(arr);
System.out.println("偶数个数总共有:"+arr1.size());
//遍历这个新集合
for (int i = 0; i < arr1.size(); i++) {
System.out.println(arr1.get(i));
}
}
//定义筛选方法
public static ArrayList<Integer> small(ArrayList<Integer> arr) {
//创建一个新的集合
ArrayList<Integer> arr1 = new ArrayList<>();
//开启循环
for (int i = 0; i < arr.size(); i++) {
//如果是偶数。那么就这个元素赋给新的结合
if (arr.get(i) % 2 == 0){
arr1.add(arr.get(i));
}
}
//返回这个新集合
return arr1;
}
}