相较于之前所学的数组,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(元素内容) 注意:对于集合来说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; } }