java第一个小项目(学生管理系统ArrayList)
ArrayList的常见的方法:
构造方法:
public ArrayList<E>();
//例如:
ArrayList<String> array = new ArrayList<>();
//或者:
ArrayList<String> array = new ArrayList<String>();
添加方法:
public boolean add(E e)
public boolean add(int index,E e)
删除指定元素:
public boolean remove(Object 0)
删除索引处元素,返回被删除元素:
public E remove(int index)
返回指定索引处的元素:
public E get(int index)
修改指定索引处元素,返回被修改的元素:
public E set(int index,E element)
返回集合中的元素的个数:
public int size()
//学生类
package Demo;
public class Student {
private String sid;
private String name;
private String age;
private String address;
public Student() {//无参构造
}
//有参构造(就是初始化成员变量)
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
//这些get set 方法在idea中可以直接用alt + insert快捷键实现,
//不用一个一个的去敲
}
//创建学生测试类(就是管理学生的)
package Demo;
import java.util.Scanner;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Student> array = new ArrayList<>();
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.退出");
int num = sc.nextInt();
switch (num) {
case 1:
System.out.println("添加学生");
addStudent(array);
break;
case 2:
System.out.println("删除学生");
deleteStudent(array);
break;
case 3:
System.out.println("修改学生");
updateStudent(array);
break;
case 4:
System.out.println("查看学生");
findAllStudent(array);
break;
case 5:
System.out.println("退出");
//break;
System.exit(0);//JVM退出,就是虚拟机退出
}
}
}
//增加学生
public static void addStudent(ArrayList<Student> array) {
System.out.println("输入学生的学号,姓名,年龄,地址");
Scanner sc = new Scanner(System.in);
String id = sc.next();
String name = sc.next();
String age = sc.next();
String address = sc.next();
//用这种方法给他赋值要更好一些,这种方式代码简洁
Student s = new Student(id, name, age, address);
//这种方法虽然能和上面的代码实现相同的赋值的功能,但是代码过于复杂,而且效率低(老师说的)
//这种方法一般用于修改的操作中
// Student s = new Student();
// s.setName(name);
// s.setAge(age);
// s.setSid(id);
// s.setAddress(address);
if (array.add(s)) {//AttarList中add函数的返回类型是boolean,就是返回添加成功与否
System.out.println("添加成功");
}
}
//查看学生信息
public static void findAllStudent(ArrayList<Student> array) {
for (int i = 0; i < array.size(); i++) {
System.out.println(i + "号学生:");
//System.out.println("\t姓名" + array.get(i));
//这个语句只是返回了地址,必须要调用get方法得到想要得到的东西
System.out.println("\t姓名" + array.get(i).getName());
System.out.println("\t学号" + array.get(i).getSid());
System.out.println("\t地址" + array.get(i).getAddress());
System.out.println("\t年龄" + array.get(i).getAge());
}
}
//删除学生信息
public static void deleteStudent(ArrayList<Student> array) {
System.out.println("请输入学生的学号");
Scanner sc = new Scanner(System.in);
String sid = sc.next();
int index = -1;//************就是一个flag,用于标记是否存在这个学号的学生,下面有判断的************
for(int i=0;i<array.size();i++){
if(sid.equals(array.get(i).getSid())){
index = i;
break;
}
}
if(index == -1){
System.out.println("学号不正确,重新输入");
}else{
array.remove(index);
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array) {
System.out.println("请输入学号");
Scanner sc = new Scanner(System.in);
String sid = sc.next();
System.out.println("输入要修改的姓名,年龄,地址");
String name = sc.next();
String age = sc.next();
String address = sc.next();
Student student = new Student(sid,name,age,address);
int index = -1;
for(int i=0;i<array.size();i++){
if(sid.equals(array.get(i).getSid())){
index = -1;
break;
}
}
if(index == -1){
System.out.println("学号不正确,请重新输入");
}else{
array.set(index,student);
System.out.println("修改成功");
}
}
}
//学到的:
//1.
//这些get set 方法在idea中可以直接用alt + insert快捷键实现,不用一个一个的去敲
//2.
System.exit(0);//JVM退出,就是虚拟机退出
//3.
//用这种方法给他赋值要更好一些,这种方式代码简洁
Student s = new Student(id, name, age, address);
//这种方法虽然能和上面的代码实现相同的赋值的功能,但是代码过于复杂,
//而且效率低(老师说的)
//这种方法一般用于修改的操作中
// Student s = new Student();
// s.setName(name);
// s.setAge(age);
// s.setSid(id);
// s.setAddress(address);