Java集合基础


集合基础

一、集合介绍

1. 什么是集合?

集合是一种容器,用来装数据的,类似于数组。

但是我们有数组,为啥还学习集合?

数组定义完成并启动后,长度就固定了。

image-20230130104259822

集合大小可变,开发中用的更多。

image-20230130104315402

2. 集合类型

image-20230130105007652

这里我们先学习 ArrayList 集合。

3. ArrayList 长度可变原理

  1. 当创建 ArrayList 集合容器的时候, 底层会存在一个长度为10个大小的空数组

image-20230130105147133

当元素超过10个时,那该怎么办?

image-20230130105602080

  1. 扩容原数组 1.5 倍大小的新数组

image-20230130105713063

  1. 将原数组数据,拷贝到新数组中

image-20230130105801837

  1. 将新元素添加到新数组

image-20230130105951464

4. 集合和数组的使用选择

数组: 存储的元素个数固定不变

集合: 存储的元素个数经常发生改变

二、ArrayList 集合快速入门

集合创建语句

语法:

ArrayList list = new ArrayList();

现象:可以添加任意类型数据

弊端:数据不够严谨

使用泛型来限制集合中的数据类型。

泛型(<>)

使用泛型,可以对集合中储存的数据进行类型限制。

语法:

ArrayList <String> list = new ArrayList<String>();ArrayList <String> list = new ArrayList<>();

JDK7之后,等号右边的括号中可以不写数据类型。

泛型中不允许编写基本数据类型,但如果我们想在集合中存储 整数、小数、字符…这些数据,怎么办呢?

使用基本数据类型所对应的包装类:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

记忆方法:主要记住 int 和 char 所对应的包装类就可以了,其他的都是首字母大写。

下面通过一个案例来快速了解一下 ArrayList 集合:

package cn.edu.hgu.list;

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //步骤1:创建一个集合容器,内部存储 11.1 22.2 33.3
        ArrayList<Double> list1 = new ArrayList<>();
        list1.add(11.1);
        list1.add(22.2);
        list1.add(33.3);

        //步骤2:创建一个集合容器,内部储存 张三,李四,王五
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("张三");
        list2.add("李四");
        list2.add("王五");

        //步骤3:在控制台展示两个集合中的元素
        System.out.println(list1);
        System.out.println(list2);
    }
}

输出结果为:

image-20230128220454416

细节:创建 String,StringBuilder,ArrayList类的对象,打印对象名,都没有看到地址,而是元素内容

三、集合常用成员方法

方法名说明
public boolean add(E e)将指定的元素添加到此集合的末尾
public void add(int index,E element)在此集合中的指定位置插入指定的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
public E remove(int index)删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o)删除指定的元素,返回删除是否成功
public E set(int index,E element)修改指定索引处的元素,返回被修改的元素

1. 增加元素

public boolean add(E e):将指定的元素添加到此列表的尾部
public void add(int index,E element):在指定索引位置,添加对应的元素(插队)

我们来看一下数组的增加操作:

package cn.edu.hgu.list;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三1");
        list.add("张三2");
        list.add("张三3");

        list.add(0, "张三4");

        System.out.println(list);

    }

}

输出结果为:

image-20230130133255412

2. 删除元素

public E remove(int index):根据索引做删除,返回被删除掉的元素
public boolean remove(Object o):根据元素做删除,返回是否删除成功的状态

我们来看一下删除实例:

package cn.edu.hgu.list;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三1");
        list.add("张三2");
        list.add("张三3");

        System.out.println(list);

        list.remove("张三3");

        System.out.println(list);

        list.remove(1);

        System.out.println(list);

    }

}

输出结果为:

image-20230130133732533

3. 修改元素

public E set(int index,E element):修改指定索引位置,为对应的元素,返回被覆盖掉的元素

我们来实现一下元素的修改:

package cn.edu.hgu.list;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三1");
        list.add("张三2");
        list.add("张三3");

        System.out.println(list);

        list.set(0,"张三4");

        System.out.println(list);

    }

}

输出结果为:

image-20230130163252519

4. 查找数据

public E get(int index):根据索引,获取集合中的元素
public int size():返回集合中元素的个数

可以使用 for 循环配合两个方法实现集合遍历:

package cn.edu.hgu.list;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三1");
        list.add("张三2");
        list.add("张三3");

        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
        
    }

}

输出结果为:

image-20230130163947864

四、集合遍历

1. 集合存储字符串并遍历

需求:创建一个存储字符串的集合,内部存储3个字符串元素, 使用程序实现在控制台遍历该集合

代码实现:

package cn.edu.hgu.test;

import java.util.ArrayList;

public class ArrayListTest1 {


    public static void main(String[] args) {
        ArrayListTraversal1();
        System.out.println("----------------");
        ArrayListTraversal2();
    }
    /*
        需求:创建一个存储字符串的集合,内部存储字符串元素
            姬霓太美,钢门吹雪,香翅捞饭,李四,甄妮玛黛妗,张三
            使用程序实现在控制台遍历该集合,将4个字的人名,打印在控制台
     */

    private static void ArrayListTraversal2() {
        ArrayList<String> list = new ArrayList<>();

        list.add("姬霓太美");
        list.add("钢门吹雪");
        list.add("香翅捞饭");
        list.add("姬霓太美");
        list.add("李四");
        list.add("甄妮玛黛妗");
        list.add("张三");

        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if (s.length() == 4) {
                System.out.println(s);
            }
        }
    }

    /*
            需求:创建一个储存字符串的集合,内部存储3个字符串元素,使用程序实现在控制台遍历该集合
         */
    private static void ArrayListTraversal1() {
        ArrayList<String> list = new ArrayList<>();

        list.add("张三");
        list.add("李四");
        list.add("王五");

        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
    }
}

输出结果为:

image-20230129095838784

2. 集合存储学生对象并遍历

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

准备学生类:

package cn.edu.hgu.domain;

public class Student {
    private String name;
    private int age;


    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     *
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     *
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     *
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

}

创建集合并遍历:

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;

public class ArrayListTest2 {
    /*
        需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
     */
    public static void main(String[] args) {
        Student stu1 = new Student("张三", 23);
        Student stu2 = new Student("李四", 14);
        Student stu3 = new Student("王五", 25);

        ArrayList<Student> list = new ArrayList<>();

        list.add(stu1);
        list.add(stu2);
        list.add(stu3);

        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName() + "---" + stu.getAge());
        }

    }
}

输出结果为:

image-20230129101555990

对需求进行修改,在控制台展示出年龄低于18岁的学生信息:

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;

public class ArrayListTest2 {
    /*
        需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
                在控制台,展示出年龄低于18岁的学生信息
     */
    public static void main(String[] args) {
        Student stu1 = new Student("张三", 23);
        Student stu2 = new Student("李四", 14);
        Student stu3 = new Student("王五", 25);

        ArrayList<Student> list = new ArrayList<>();

        list.add(stu1);
        list.add(stu2);
        list.add(stu3);

        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            if (stu.getAge() < 18) {
                System.out.println(stu.getName() + "---" + stu.getAge());
            }
        }
    }
}

输出结果为:

image-20230129102533249

3. 键盘录入学生信息到集合

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

​ 学生的姓名和年龄来自于键盘录入

image-20230129111141830

image-20230129111137084

五、集合删除数据和筛选

1. 集合删除元素

需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串

​ 删除所有的test字符串,删除后,将集合剩余元素打印在控制台

代码实现:

package cn.edu.hgu.test;

import java.util.ArrayList;

public class ArrayListTest4 {
    /*
        需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
             删除所有的test字符串,删除后,将集合剩余元素打印在控制台
     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("test");
        list.add("张三");
        list.add("李四");
        list.add("test");
        list.add("test");

        ArrayListRemove2(list);

        System.out.println(list);
    }

    /*
        实现倒序删除
     */
    private static void ArrayListRemove2(ArrayList<String> list) {
        for (int i = list.size() - 1; i >= 0; i--) {
            String s = list.get(i);
            if ("test".equals(s)) {
                list.remove(i);
            }
        }
    }

    /*
        实现正序删除
     */
    private static void ArrayListRemove1(ArrayList<String> list) {
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if ("test".equals(s)) {
                list.remove(i);
                i--;//解决要删除的内容相邻时,少删除
            }
        }
    }
}

输出结果为:[张三, 李四]

总结:在遍历集合的过程中,有删除操作

  1. 正序遍历:不要忘记 --操作
  2. 倒序遍历:不需要 --操作

2. 集合元素筛选

需求:定义一个方法,方法接收一个集合对象(泛型为Student)

​ 方法内部将年龄低于18的学生对象找出

​ 并存入新集合对象,方法返回新集合

代码实现:

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;

public class ArrayListTest5 {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        list.add(new Student("张三", 23));
        list.add(new Student("李四", 14));
        list.add(new Student("王五", 15));

        ArrayList<Student> newList = filter(list);

        for (int i = 0; i < newList.size(); i++) {
            Student stu = newList.get(i);
            System.out.println(stu.getName() + "---" + stu.getAge());
        }
    }

    private static ArrayList<Student> filter(ArrayList<Student> list) {
        //1.创建新的集合容器,准备存储筛选后的学生对象
        ArrayList<Student> newList = new ArrayList<>();

        //2.遍历原集合
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            //3.筛选
            if (stu.getAge() < 18) {
                //4.将满足要求的学生对象,存入新集合
                newList.add(stu);
            }
        }
        return newList;
    }
}

输出结果为:

image-20230129194530094

六、学生管理系统

image-20230130171313223

1. 菜单搭建

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        // 增删改查都是围绕着这个进行操作
        ArrayList<Student> list = new ArrayList<>();

        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("---------欢迎来到学生管理系统---------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看学生");
            System.out.println("5 退出");
            System.out.println("请输入您的选择:");

            int choice = sc.nextInt();

            switch (choice) {
                case 1:
                    System.out.println("添加学生");
                    break;
                case 2:
                    System.out.println("删除学生");
                    break;
                case 3:
                    System.out.println("修改学生");
                    break;
                case 4:
                    System.out.println("查看学生");
                    break;
                case 5:
                    System.out.println("感谢您的使用,再见");
                    System.exit(0);//终止正在运行的JVM虚拟机
                    break;
                default:
                    System.out.println("您的输入有误,请检查");
                    break;
            }
        }

    }

}

2. Student学生类

定义 Student学生类(学号、姓名、年龄、生日)

package cn.edu.hgu.domain;

public class Student {
    private String id;
    private String name;
    private int age;
    private String birthday;


    public Student() {
    }

    public Student(String id, String name, int age, String birthday) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    /**
     * 获取
     *
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     *
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     *
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     *
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     *
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     *
     * @return birthday
     */
    public String getBirthday() {
        return birthday;
    }

    /**
     * 设置
     *
     * @param birthday
     */
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

}

3. 实现查看功能

我们先实现最简单的查看功能,由于没有实现添加功能,这里先使用固定数据:

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student("heima001", "张三", 23, "1999-11-11");
        Student stu2 = new Student("heima002", "李四", 24, "1999-11-12");
        Student stu3 = new Student("heima003", "王五", 25, "1999-12-11");

        // 增删改查都是围绕着这个进行操作
        ArrayList<Student> list = new ArrayList<>();

        list.add(stu1);
        list.add(stu2);
        list.add(stu3);

        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("---------欢迎来到学生管理系统---------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看学生");
            System.out.println("5 退出");
            System.out.println("请输入您的选择:");

            int choice = sc.nextInt();

            switch (choice) {
                case 1:
                    System.out.println("添加学生");
                    break;
                case 2:
                    System.out.println("删除学生");
                    break;
                case 3:
                    System.out.println("修改学生");
                    break;
                case 4:
                    queryStudentInfos(list);
                    break;
                case 5:
                    System.out.println("感谢您的使用,再见");
                    System.exit(0);//终止正在运行的JVM虚拟机
                    break;
                default:
                    System.out.println("您的输入有误,请检查");
                    break;
            }
        }


    }

    /**
     * 此方法用于查看学生
     */
    private static void queryStudentInfos(ArrayList<Student> list) {
        if (list.size() == 0) {
            System.out.println("查无信息,请添加后重试!");
        } else {
            System.out.println("学号\t\t\t姓名\t年龄\t生日");
            for (int i = 0; i < list.size(); i++) {
                Student stu = list.get(i);
                System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getBirthday());
            }
        }
    }
}

输出结果为:

image-20230129214407703

image-20230129214412680

查看功能首先要判断集合中是否存在元素,如果不存在打印查无信息,请添加后重试!,否则打印集合中的元素信息。

4. 实现根据ID获取索引功能

删除功能和修改功能都是基于ID 来实现的,下面我们来实现这个方法:

package cn.edu.hgu.demo;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        Student stu1 = new Student("heima001", "张三", 23, "1999-11-11");
        Student stu2 = new Student("heima002", "李四", 24, "1999-11-12");
        Student stu3 = new Student("heima003", "王五", 25, "1999-12-11");

        ArrayList<Student> list = new ArrayList<>();

        list.add(stu1);
        list.add(stu2);
        list.add(stu3);

        String id = "heima001";

        int index = getIndex(id, list);
        System.out.println(index);
    }

    private static int getIndex(String id, ArrayList<Student> list) {
        //1.遍历集合,获取到每一个学生对象
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            //2.比对
            if (id.equals(stu.getId())) {
                //3.找到了,返回正确的索引
                return i;
            }
        }
        //4.没找到,返回-1
        return -1;
    }
}

输出结果为:0

说明方法没有问题,将方法复制到 Test 类中。

5. 实现删除功能

private static void deleteStudentById(ArrayList<Student> list) {
        //1.键盘录入要删除的学号
        Scanner sc = new Scanner(System.in);
        System.out.println("输入您要删除的学生学号:");
        String id = sc.next();
        //2.调用getIndex方法,查找学号在集合中的索引
        int index = getIndex(id, list);
        //3.判断方法的返回值是否为-1
        if (index == -1) {
            //3.1 是-1,说明学号不存在,给出错误提示
            System.out.println("查无此人,删除失败!");
        } else {
            //3.2 不是-1,说明学号存在,根据索引做删除
            list.remove(index);
            System.out.println("删除成功!");
        }

    }

输出结果为:

image-20230130085513226

image-20230130085505803

6. 实现修改功能

private static void updateStudentInfoById(ArrayList<Student> list) {
        //1.键盘录入要修改的学生学号
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String updateId = sc.next();
        //2.调用 getIndex 方法查找学号对应的索引
        int index = getIndex(updateId, list);
        //3.如果学号不存在,给出错误提示
        if (index == -1) {
            System.out.println("查无此人,修改失败!");
        } else {
            //4.如果学号存在,录入新的学生信息,完成修改
            System.out.println("请输入新的学生姓名:");
            String name = sc.next();
            System.out.println("请输入新的学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入新的学生生日:");
            String birthday = sc.next();

            //将新录入的学生信息,封装为学生对象
            Student stu = new Student(updateId, name, age, birthday);

            list.set(index,stu);
        }

    }

输出结果:

image-20230130102755598

image-20230130102826737

7. 实现添加功能

private static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入学生学号:");

        String id = "";

        while (true) {
            id = sc.next();

            int index = getIndex(id, list);

            if (index == -1) {
                break;
            } else {
                System.out.println("您输入的学号已被占用,请重新输入!");
            }
        }

        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.println("请输入学生生日:");
        String birthday = sc.next();

        Student stu = new Student(id, name, age, birthday);

        list.add(stu);
    }

输出结果为:

image-20230130103906895

8. 完整代码

package cn.edu.hgu.test;

import cn.edu.hgu.domain.Student;

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {

        // 增删改查都是围绕着这个进行操作
        ArrayList<Student> list = new ArrayList<>();

        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("---------欢迎来到学生管理系统---------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看学生");
            System.out.println("5 退出");
            System.out.println("请输入您的选择:");

            int choice = sc.nextInt();

            switch (choice) {
                case 1:
                    addStudent(list);
                    break;
                case 2:
                    deleteStudentInfoById(list);
                    break;
                case 3:
                    updateStudentInfoById(list);
                    break;
                case 4:
                    queryStudentInfos(list);
                    break;
                case 5:
                    System.out.println("感谢您的使用,再见");
                    System.exit(0);//终止正在运行的JVM虚拟机
                    break;
                default:
                    System.out.println("您的输入有误,请检查");
                    break;
            }
        }


    }

    /**
     * 此方法用于键盘录入学生信息,封装学生对象,存入集合
     */
    private static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入学生学号:");

        String id = "";

        while (true) {
            id = sc.next();

            int index = getIndex(id, list);

            if (index == -1) {
                break;
            } else {
                System.out.println("您输入的学号已被占用,请重新输入!");
            }
        }

        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.println("请输入学生生日:");
        String birthday = sc.next();

        Student stu = new Student(id, name, age, birthday);

        list.add(stu);
    }

    /**
     * 根据学号修改集合中的学生信息
     */
    private static void updateStudentInfoById(ArrayList<Student> list) {
        //1.键盘录入要修改的学生学号
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String updateId = sc.next();
        //2.调用 getIndex 方法查找学号对应的索引
        int index = getIndex(updateId, list);
        //3.如果学号不存在,给出错误提示
        if (index == -1) {
            System.out.println("查无此人,修改失败!");
        } else {
            //4.如果学号存在,录入新的学生信息,完成修改
            System.out.println("请输入新的学生姓名:");
            String name = sc.next();
            System.out.println("请输入新的学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入新的学生生日:");
            String birthday = sc.next();

            //将新录入的学生信息,封装为学生对象
            Student stu = new Student(updateId, name, age, birthday);

            list.set(index, stu);
        }

    }

    /**
     * 根据学号删除集合中的学生
     */
    private static void deleteStudentInfoById(ArrayList<Student> list) {
        //1.键盘录入要删除的学号
        Scanner sc = new Scanner(System.in);
        System.out.println("输入您要删除的学生学号:");
        String id = sc.next();
        //2.调用getIndex方法,查找学号在集合中的索引
        int index = getIndex(id, list);
        //3.判断方法的返回值是否为-1
        if (index == -1) {
            //3.1 是-1,说明学号不存在,给出错误提示
            System.out.println("查无此人,删除失败!");
        } else {
            //3.2 不是-1,说明学号存在,根据索引做删除
            list.remove(index);
            System.out.println("删除成功!");
        }

    }

    /**
     * 此方法用于查看学生
     */
    private static void queryStudentInfos(ArrayList<Student> list) {
        if (list.size() == 0) {
            System.out.println("查无信息,请添加后重试!");
        } else {
            System.out.println("学号\t\t\t姓名\t年龄\t生日");
            for (int i = 0; i < list.size(); i++) {
                Student stu = list.get(i);
                System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getBirthday());
            }
        }
    }

    /**
     * 此方法根据学号,去集合中查找对应的索引
     */
    private static int getIndex(String id, ArrayList<Student> list) {
        //1.遍历集合,获取到每一个学生对象
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            //2.比对
            if (id.equals(stu.getId())) {
                //3.找到了,返回正确的索引
                return i;
            }
        }
        //4.没找到,返回-1
        return -1;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W_chuanqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值