Java ArrayList

描述

修改 Java ArrayList 中的学生信息,并遍历集合输出结果。

题目

请定义学生 ,属性包含姓名和年龄。用户输入需要修改的学生姓名,到 ArrayList 集合 中,修改学生年龄信息,并遍历集合打印学生信息。

题目解决思路

  1. 定义学生类,属性包含姓名和年龄。
  2. 创建 ArrayList 集合对象,泛型声明为 Student 类型。
  3. 通过用户输入的学生姓名,调用方法获取该学生在集合中的索引。
  4. 通过索引更新指定学生年龄信息。

代码具体实现

创建学生类

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; import java.util.Scanner; public class ArrayListDemo04 { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)\n"); // 定义一个 ArrayList 集合用于存储学生对象数据。 ArrayList<Student> students = new ArrayList<>(); // 添加两个学生对象 Student stu1 = new Student("haicoder",20); Student stu2 = new Student("嗨客",30); students.add(stu1); students.add(stu2); // 展示学生信息 showStudent(students); // 调用方法更改学生信息 updateStudent(students); } /** * 获取学生在集合中的索引 * @param name * @param students * @return */ public static int getIndex(String name,ArrayList<Student> students){ for (int i = 0; i < students.size(); i++) { Student stu = students.get(i); if(name.equals(stu.getName())){ int index = i; return index; } } // 该学生不存在 return -1; } /** * 更新学生信息 * @param students */ public static void updateStudent(ArrayList<Student> students){ // 提示用户修改学生信息 Scanner sc = new Scanner(System.in); System.out.print("请您输入您需要修改学生的名字:"); String name = sc.nextLine(); int index = getIndex(name,students); if(index >= 0){ System.out.print("请您输入新的年龄:"); int age = sc.nextInt(); Student newStu = new Student(name,age); students.set(index,newStu); System.out.println("您的学生对象已经修改成功!\n"); // 展示学生信息 showStudent(students); }else{ System.out.println("该同学不存在!"); } } /** * 展示学生信息 * @param students */ public static void showStudent(ArrayList<Student> students) { for (int i = 0; i < students.size(); i++) { Student s = students.get(i); System.out.println("学生信息为: " + s.getName() + " " + s.getAge() + "岁"); } } }

当输入用户名不存在时,运行如下:

04_java ArrayList.png

修改用户年龄信息,运行如下:

05_java ArrayList.png

此处实现修改集合中学生信息。