ArrayList 学生管理系统
一、ArrayList创建变量的步骤
1.导入包
import java.util.*;
2.创建引用类型的变量
数据类型<集合存储的数据类型> 变量名 = new 数据类型<集合存储的数据类型>();
集合存储的数据类型:要将数据存储到集合的容器中。创建集合引用变量的时候,必须要指定好存储的类型是什么。
3.变量名.方法即可调用
注意尖括号中的类型必须要写。
注意:ArrayList存储的是引用类型,那么8个基本的类型对应8个引用类型。
如下表所示:
表1基本数据类型&引用数据类型参照表
基本数据类型 | 对应的引用数据类型 表示形式 |
---|---|
byte | Byte |
short | Short |
int | integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
二、ArrayList常见的方法
array.add(object);//添加一个元素
array.get(index);//取出集合中的元素,在get方法的参数中,写入索引。
array.size();//返回集合的长度,也就是存储元素的个数。
array.set(object);//设置一个元素
array.remove();//移除一个元素
这里需要注意的是remove()方法,remove()会改变索引,在某些循环中会漏掉遍历的元素
案例:学生管理系统
要求 该系统具有录入信息,查看、增加、删改信息的功能。
import java.util.ArrayList;
import java.util.Scanner;
//主程序
public class Manager {
public static void main(String[] args) {
ArrayList<Student> arst = new ArrayList<Student>();
Student student = new Student();
while(true){
System.out.println("----------欢迎进入学生管理系统----------");
System.out.println();
System.out.println("\t\t\t1.录入学生信息");
System.out.println("\t\t\t2.删除学生信息");
System.out.println("\t\t\t3.修改学生信息");
System.out.println("\t\t\t4.查看学生信息");
System.out.println("\t\t\t5.退出");
System.out.println();
System.out.println("---------------------------------------");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line){
default:
System.out.println("输入有误,请按提示输入!");
break;
case "1":
student.setStudent(arst);
break;
case "2":
student.DeleteStudent(arst);
break;
case "3":
student.modifyStudent(arst);
break;
case "4":
student.detectStudent(arst);
break;
case "5":
System.out.println("谢谢使用!");
System.exit(0);
}
}
}
}
import java.util.ArrayList;
import java.util.Scanner;
//学生类
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;
}
//录入学生信息
public void setStudent(ArrayList<Student> arst){
Scanner sc = new Scanner(System.in);
String sid;
while(true) {
System.out.println("请输入学生的学号: ");
sid = sc.nextLine();
boolean flag = isUsed(arst, sid);
if(flag){
System.out.println("您添加的学号已经被使用,请重新输入!");
}else{
break;
}
}
System.out.println("请输入学生的姓名: ");
String name = sc.nextLine();
System.out.println("请输入学生的年龄: ");
String age = sc.nextLine();
System.out.println("请输入学生的家庭地址: ");
String address = sc.nextLine();
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
arst.add(s);
System.out.println("添加成功!");
System.out.println("当前共录入了" + arst.size() + "条信息");
}
//查看学生信息
public void detectStudent(ArrayList<Student> arst){
if (arst.size() == 0) {
System.out.println("当前无信息,请录入信息后再查询!");
return;
}
System.out.println("学号\t\t\t姓名\t\t年龄\t\t家庭地址");
for (int i = 0;i < arst.size();i++){
Student s = arst.get(i);
System.out.println(s.getSid() + "\t\t" +s.getName() + "\t\t" + s.getAge() + "岁\t\t" + s.getAddress());
}
}
//删除学生信息
public void DeleteStudent(ArrayList<Student> arst){
Scanner sc = new Scanner(System.in);
String sid;
while(true){
System.out.println("请输入要删除的学生的学号: ");
sid = sc.nextLine();
int index = -1;
for (int i = 0; i < arst.size(); i++) {
Student s = arst.get(i);
if(s.getSid().equals(sid)){
index = i;
arst.remove(index);
break;
}
}
if(index == -1){
System.out.println("该学号不存在,请重新输入!");
}else{
System.out.println("删除成功!");
break;
}
}
}
//修改学生信息
public void modifyStudent(ArrayList<Student> arst){
Scanner sc = new Scanner(System.in);
String sid;
while(true){
System.out.println("请输入要修改的学生的学号: ");
sid = sc.nextLine();
int index = -1;
for (int i = 0; i < arst.size(); i++) {
Student student = arst.get(i);
if(student.getSid().equals(sid)){
index = i;
System.out.println("请输入新的学生的学号: ");
sid = sc.nextLine();
System.out.println("请输入新的学生的姓名: ");
String name = sc.nextLine();
System.out.println("请输入新的学生的年龄: ");
String age = sc.nextLine();
System.out.println("请输入新的学生的家庭地址: ");
String address = sc.nextLine();
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
arst.set(index,s);
break;
}
}
if(index == -1){
System.out.println("该学号不存在,请重新输入!");
}else{
System.out.println("修改成功!");
break;
}
}
}
//判断输入的学号是否重复
public boolean isUsed(ArrayList<Student> arst,String sid){
boolean flag = false;
for(int i = 0;i < arst.size();i++){
Student student = arst.get(i);
if(student.getSid().equals(sid)){
flag = true;
break;
}
}
return flag;
}
}