java自定义学生类,每个学生对象包括学号、姓名、年龄和地址等属性。利用相关集合类编写程序实现对学生增、删、改、查、统计的功能。定义主类进行测试。
时间: 2023-12-22 22:20:51 浏览: 73
以下是一个Java自定义学生类的示例代码,其中包括学号、姓名、年龄和地址等属性,并使用相关集合类实现了增、删、改、查和统计的功能。
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Student {
private String id;
private String name;
private int age;
private String address;
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return "学号:" + id + ",姓名:" + name + ",年龄:" + age + ",地址:" + address;
}
public static void main(String[] args) {
Map<String, Student> map = new HashMap<String, Student>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.统计学生数量 6.退出程序");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入学生学号:");
String id = scanner.next();
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
System.out.println("请输入学生地址:");
String address = scanner.next();
Student student = new Student(id, name, age, address);
map.put(id, student);
System.out.println("添加学生成功!");
break;
case 2:
System.out.println("请输入要删除的学生学号:");
String deleteId = scanner.next();
if (map.containsKey(deleteId)) {
map.remove(deleteId);
System.out.println("删除学生成功!");
} else {
System.out.println("学生不存在!");
}
break;
case 3:
System.out.println("请输入要修改的学生学号:");
String modifyId = scanner.next();
if (map.containsKey(modifyId)) {
System.out.println("请输入新的学生姓名:");
String modifyName = scanner.next();
System.out.println("请输入新的学生年龄:");
int modifyAge = scanner.nextInt();
System.out.println("请输入新的学生地址:");
String modifyAddress = scanner.next();
Student modifyStudent = new Student(modifyId, modifyName, modifyAge, modifyAddress);
map.put(modifyId, modifyStudent);
System.out.println("修改学生成功!");
} else {
System.out.println("学生不存在!");
}
break;
case 4:
System.out.println("请输入要查询的学生学号:");
String queryId = scanner.next();
if (map.containsKey(queryId)) {
System.out.println(map.get(queryId));
} else {
System.out.println("学生不存在!");
}
break;
case 5:
System.out.println("学生数量为:" + map.size());
List<Student> studentList = new ArrayList<Student>(map.values());
for (Student s : studentList) {
System.out.println(s);
}
break;
case 6:
System.exit(0);
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
}
```
该程序中使用了一个Map来存储学生对象,其中学生的学号为key,学生对象为value。通过Scanner获取用户输入来实现不同功能的操作。其中,添加学生使用put()方法将学生对象添加到Map中,删除学生使用remove()方法从Map中删除学生对象,修改学生使用put()方法替换原有的学生对象,查询学生使用get()方法获取指定学号的学生对象。统计学生数量使用size()方法获取Map中学生对象的数量,使用values()方法获取Map中所有学生对象的集合,遍历集合并输出学生信息实现。
阅读全文