一、什么是ArrayList类以及注意事项
java.util.ArrayList
是大小可变的数组的实现,存储在内的数据称为元素,此类提供一些方法来操作内部的元素,ArrayList
中可以不断添加元素,其大小也自动增长。- 数组的长度不可以发生改变,但是ArrayList集合的长度是任意可以改变的
- 对于ArrayList来说,有一个尖括号
<E>
代表泛型 泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型 - 注意:泛型只能是引用类型,不能是基本类型
- 注意事项: 对于ArrayList集合来说,直接打印得到不是地址值,而是内容,如果内容为空,得到的是中括号:
[]
import java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 11:20 */ /* 数组的长度不可以发生改变,但是ArrayList集合的长度是任意可以改变的 对于ArrayList来说,有一个尖括号<E>代表泛型 泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型 注意:泛型只能是引用类型,不能是基本类型 注意事项: 对于ArrayList集合来说,直接打印得到不是地址值,而是内容 如果内容为空,得到的是中括号:[] */ public class demo06 { public static void main(String[] args) { //创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据 //从JDK1.7+起,右侧的尖括号内可以不写内容,但是<>本身还是要写上的 ArrayList<String> list=new ArrayList<>(); System.out.println(list);//[] //向集合当中添加数据 list.add("张三"); System.out.println(list);//[张三] list.add("彭于晏"); list.add("王嘉尔"); list.add("金瀚"); System.out.println(list);//[张三, 彭于晏, 王嘉尔, 金瀚] } }
二、 ArrayList的常用方法
public boolean add(E e)
:向集合中添加元素,参数的类型和泛型一致public E get(int index)
:从集合中获取元素,参数还是索引编号,返回值就是对应位置的元素public E remove(int index)
:从集合当中删除元素,参数是索引的编号,返回值就是被删除掉的元素public int size()
:获取集合的尺寸长度,返回值是包含元素的个数- 备注:对于
ArrayList
集合来说,add
添加动作一定是成功的,所以返回值可以用也可以不用 - 但是对于其他集合(今后学习)来说,
add
添加的动作不一定成功
mport java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 11:46 */ /* public boolean add(E e):向集合中添加元素,参数的类型和泛型一致 public E get(int index):从集合中获取元素,参数还是索引编号,返回值就是对应位置的元素 public E remove(int index):从集合当中删除元素,参数是索引的编号,返回值就是被删除掉的元素 public int size():获取集合的尺寸长度,返回值是包含元素的个数 备注:对于 ArrayList集合来说,add添加动作一定是成功的,所以返回值可以用也可以不用 但是对于其他集合(今后学习)来说,add添加的动作不一定成功 */ public class demo07 { public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); System.out.println(list);//[] //向集合中添加元素 boolean success=list.add("王嘉尔"); System.out.println(list);//[王嘉尔] System.out.println("添加的动作是否成功:"+success);//true list.add("金瀚"); list.add("赵今麦"); list.add("刘涵涵"); // 从集合中获取元素:get 索引值从0开始 String name= list.get(2); System.out.println("第二号元素的位置:"+name); //从集合中删除元素remove索引值从0开始 String whoRemove=list.remove(2); System.out.println("被删除的人是:"+whoRemove); System.out.println(list); //获取集合的长度尺寸,也就是其中元素的个数 int size =list.size(); System.out.println("集合的长度是:"+size); } }
三、遍历集合
import java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 13:26 */ public class demo08 { public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("赵六"); //遍历集合 for (int i = 0; i <list.size() ; i++) { System.out.println(list.get(i)); } } }
四、ArrayList集合存储基本数据
如果希望向集合ArrayList当中存储基本类型的数据,必须使用基本类型的包装类
import java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 13:32 */ public class demo09 { public static void main(String[] args) { ArrayList<String> listA=new ArrayList<>(); ArrayList<Integer> listB=new ArrayList<>(); listB.add(32); listB.add(100); System.out.println(listB);//[32, 100] int num=listB.get(1); System.out.println("第一号元素是:"+num); } }
五、练习题
1️⃣生成6个1-33之间的随机整数,添加到集合,并遍历集合
import java.util.ArrayList; import java.util.Random; /** * @author :CaiCai * @date : 2022/4/7 13:43 */ public class demo10 { public static void main(String[] args) { ArrayList<Integer> list=new ArrayList<>(); Random r=new Random(); for (int i = 0; i <6; i++) { int num=r.nextInt(33)+1; list.add(num); } //遍历集合 for (int i = 0; i <list.size() ; i++) { System.out.println(list.get(i)); } } }
2️⃣题目:自定义4个学生对象,添加到集合并且遍历
/** * @author :CaiCai * @date : 2022/4/7 13:52 */ public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
import java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 13:54 */ public class demo12 { public static void main(String[] args) { ArrayList<Student> list=new ArrayList<>(); Student one=new Student("张三",20); Student two=new Student("李四",26); Student three=new Student("王五",23); Student four=new Student("李柳",24); list.add(one); list.add(two); list.add(three); list.add(four); //遍历集合 for (int i = 0; i < list.size(); i++) { Student stu= list.get(i); System.out.println("姓名"+stu.getName()+"年龄"+stu.getAge()); } } }
3️⃣打印集合
import java.util.ArrayList; /** * @author :CaiCai * @date : 2022/4/7 14:08 */ public class demo13 { 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); } /* 定义方法的三要素 返回值类型:只是进行打印,没有运算,所以不需要返回值 方法名称:printArrayList 参数列表:ArrayList */ public static void printArrayList(ArrayList<String> list){ //{10@20@30} System.out.print("{"); for (int i = 0; i < list.size(); i++) { String name=list.get(i); if(i==list.size()-1){ System.out.println(name+"}"); } else{ System.out.print(name+"@"); } } } }