一、定义
1.为什么要有ArrayList集合?
数组的长度是固定的,不能添加进去新的元素。
集合可以自动扩容,灵活添加元素。
2.但是数组有什么优点呢?
数组可以存基本数据类型和引用数据类型。
集合可以存引用数据类型,如果非要存基本数据类型,只能变成包装类再存进去。
二、例子
增:add
删:remove
改:set
查:get
遍历:for循环+size
- package bao;
-
- import java.util.ArrayList;
- import java.util.Objects;
-
- public class Test {
- public static void main(String[] args) {
- //创建对象
- ArrayList
a = new ArrayList<>(); - //1.增
- a.add("今天");
- a.add("上课");
- a.add("迟到了");
- a.add("555");
- System.out.println(a);//[今天, 上课, 迟到了, 555]
-
- //2.1删--指定值
- a.remove("今天");
- System.out.println(a);//[上课, 迟到了, 555]
- //2.2删--索引值
- a.remove(1);
- System.out.println(a);//[上课, 555]
-
- //3.改--索引值
- a.set(0,"我好想放假啊");
- System.out.println(a);//[我好想放假啊, 555]
-
- //4.查--索引值
- String c = a.get(0);
- System.out.println(c);//我好想放假啊
-
- //5.遍历全部元素
- for (int i = 0; i < a.size(); i++) {
- String h = a.get(i);
- System.out.println(h);//我好想放假啊 555
- }
- }
- }
运行结果
[今天, 上课, 迟到了, 555]
[上课, 迟到了, 555]
[上课, 555]
[我好想放假啊, 555]
我好想放假啊
我好想放假啊
555
进阶例子
创建自定义对象
1.先创建一个java bean类
2.正常创建对象步骤
java bean类
- package bao;
- //javabean类
- public class Student {
- //javabean需要的↓
- //私有成员变量
- //构造方法
- //set和get
-
- //1.私有成员变量
- private String name;
- private int age;
-
- //2.快捷键生成构造方法
- public Student() {
- }
-
- public Student(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- //3.快捷键生成set和get
- 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;
- }
- }
测试类
- package bao;
- import java.util.ArrayList;
- //测试集合类
- public class Test {
- public static void main(String[] args) {
- //1.创建自定义学生集合
- ArrayList
a = new ArrayList<>(); -
- //2.创建元素对象
- Student s1 = new Student("张三",18);
- Student s2 = new Student("李四",19);
- Student s3 = new Student("王五",20);
- Student s4 = new Student("老六",21);
-
- //3.增,把对象元素添加到集合里面
- a.add(s1);
- a.add(s2);
- a.add(s3);
- a.add(s4);
- //获取集合中的元素,只能用遍历形式获取
- for (int i = 0; i < a.size(); i++) {
- Student stu = a.get(i);
- System.out.println(stu.getName()+","+stu.getAge());
- }
- }
- }
运行结果
张三,18
李四,19
王五,20
老六,21