题目描述
请定义学生 类 ,属性包含姓名和年龄。用户输入需要修改的学生姓名,到 ArrayList 集合
中,修改该学生的信息,并遍历集合打印学生信息。
思路分析
修改 Java ArrayList 中的某个学生信息,并遍历集合输出结果。
- 定义学生类,属性包含姓名和年龄。
- 创建 ArrayList 集合对象,泛型声明为 Student 类型。
- 通过用户输入的学生姓名,调用方法获取该学生在集合中的索引。
- 通过索引修改指定学生的信息
代码实现
//用户输入学生姓名,更改学生年龄信息,并输出学生信息
public class ArrayListDemo04 {
public static void main(String[] args) {
System.out.println("");
//定义一个ArrayList 集合用于存储学生 对象数据
ArrayList<Student> students = new ArrayList<>();
//添加两个学生对象
Student stu1 = new Student("Java", 14);
Student stu2 = new Student("helloJava", 12);
students.add(stu1);
students.add(stu2);
//展示学生信息
showStudent(students);
//调用方法更改学生信息
updateStudent(students);
}
//更新学生信息
public static void updateStudent(ArrayList<Student> students) {
//提示用户修改学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请您输入您需要修改学生的名字");
String name = sc.nextLine();
int index = gexIndex(name, students);
if (index >= 0) {
System.out.println("请您输入新的年龄");
int age = sc.nextInt();
Student newStu = new Student(name, age);
students.set(index, newStu);
System.out.println("您的学生对象已经修改成功!\\n");
//展示学生信息
showStudent(students);
} else {
System.out.println("该同学不存在!");
}
}
//获取学生在集合中的角标
private static int gexIndex(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;
}
//展示学生信息
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() + "岁");
}
}
}
//创建学生类
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;
}
}