相较于之前所学的数组,ArrayList的长度是可以变化。
一、ArrayList基本使用:
import java.util.ArrayList;
/*
ArrayList集合的长度是可以随意变化的,区别于数组
ArrayList的<> 中只能是引用类型,不能是基本类型
注意:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容
如果内容为空,则打印的结果是[]
*/
public class Demo01ArrayList {
public static void main(String[] args) {
//创建ArrayList集合,内部数据类型是String字符串
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//[]
//向集合中添加数据,add方法
list.add("姜春蕾");
list.add("姜春蕾");
list.add("姜春蕾");
//list.add(100);错误写法
System.out.println(list);//[姜春蕾,姜春蕾,姜春蕾]
}
}
ps:<>中指定数据类型,使用add添加元素时必须与该数据类型一致;
二、常用方法、遍历集合
注意:对于集合来说add方法不一定成功,后期学习
获取元素:get(index),index指索引值,从0开始
删除元素:remove(index),index同上
集合长度:集合名称.size()
import java.util.ArrayList;
/*
ArrayList常用方法
添加元素:public boolean add(E e)
获取元素:public E get(int index)索引也是从0开始
删除元素:public E remove(int index)索引也是从0开始
获取长度:public int size()
*/
public class Demo02ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
boolean add = list.add("小子,要加加油啊");
System.out.println(add);//是布尔类型的
list.add("高圆圆");
list.add("赵又廷");
list.add("李小璐");
list.add("贾乃亮");
System.out.println(list);
//获取元素
String get = list.get(2);
System.out.println(get);
//集合中删除元素
String remove = list.remove(0);
System.out.println("被移除的是:" + remove);
System.out.println(list);
//获取集合长度
System.out.println("集合的长度是:" + list.size());
//遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
三、如果希望向ArrayList集合存储基本类型数据,必须使用对应的“包装类”
import java.util.ArrayList;
public class Demo03ArrayListBasic {
public static void main(String[] args) {
//错误写法
//ArrayList<int> list = new ArrayList<>();
/*
如果希望向集合中存储基本类型数据,必须使用基本类型对应的包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
*/
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
System.out.println(list);//[100]
System.out.println(list.get(0));//100
ArrayList<Character> list1 = new ArrayList<>();
list1.add('A');
System.out.println(list1);//[A]
System.out.println(list1.get(0));//A
}
}
四、ArrayList集合作为方法的参数
import java.util.ArrayList;
/*
自定义一个方法,按指定格式打印集合,{元素@元素@元素...}
*/
public class Demo06ArrayListPrint {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三丰");
list.add("殷素素");
list.add("张翠山");
list.add("张无忌");
System.out.println(list);//[张三丰, 殷素素, 张翠山, 张无忌]
//调用方法
printArrayList(list);//{张三丰@殷素素@张翠山@张无忌}
}
public static void printArrayList(ArrayList<String> list){
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
String name = list.get(i);
if (i == list.size() - 1){
System.out.print(name +"}");
}else{
System.out.print(name + "@");
}
}
}
}
五、ArrayList集合作为方法的返回值
import java.util.ArrayList;
import java.util.Random;
/*
用一个大集合存放20个随机数字,筛选其中的偶数元素,放到小集合当中
要求使用自定义的方法来实现筛选
*/
public class Demo07ArrayListReturn {
public static void main(String[] args) {
//创建一个大集合,存放20个随机整数
ArrayList<Integer> bigList = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 20; i++) {
int num = r.nextInt(100);
bigList.add(num);
}
//接收返回的小集合,赋值给result接收并遍历
ArrayList<Integer> result = getSmallList(bigList);
System.out.println(result);
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i));
}
}
//集合可以作为方法的参数、返回值类型
//将大集合作为参数,并将其中符合条件的数据存放在小集合,并返回
public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < bigList.size(); i++) {
int num = bigList.get(i);
//判断是否为偶数
if(num > 0 && num % 2 == 0){
smallList.add(num);
}
}
return smallList;
}
}
万丈高楼平地起。