ArrayList<要保存元素的数据类型> 对象名 = new ArrayList<要保存元素的数据类型>();
1:添加元素
add(元素值); 只要执行成功,都会返回true;
add(索引,元素值); 向指定的位置添加元素;没有返回值;
2:删除元素
remove(索引或元素值); 返回的是被删除掉的元素
3:修改元素
set(索引,新元素); 返回的是被替换掉的元素
4:查询元素
get(索引); 返回的是指定索引处的元素;
5:获取长度
size();
都可以保存多个元素;
1:数组的长度是固定的,而集合的长度是可变的;
2:数组可以直接保存基本数据类型的数据,而集合不能直接保存基本数据类型的数据;(如果想保存基本数据类型的数据,需要使用对应的包装类型)
作为参数传递
传递的是地址值,在其他方法中,对集合的元素进行修改,原方法中会受影响;
1:使用ArrayList集合保存学生对象
2:使用while死循环配合switch语句让用户选择功能菜单
3:每一个独立的功能写一个单独的方法即可,注意方法的参数都是ArrayList集合,都不需要返回值;
学生类
package StudentUser;
/*
学生管理系统类
*/
public class Student {
private String id;
private String name;
private String sex;
private int age;
private String address;
public Student() {
}
public Student(String id, String name, String sex, int age, String address) {
this.id = id;
this.name = name;
this.sex = sex;
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
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;
}
}
测试类
package StudentUser;
import javax.swing.text.Style;
import java.util.ArrayList;
import java.util.Scanner;
/*
学生管理系统测试类
*/
public class StudentDemo {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<Student>();
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、退出当前系统");
System.out.println("请选择你要进行的操作序号:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
switch (num){
case 1:
//System.out.println("添加");
AddMessage(list);
break;
case 2:
//System.out.println("删除");
DeleteMessage(list);
break;
case 3:
//System.out.println("修改");
UpdataMessage(list);
break;
case 4:
//System.out.println("查看");
ShowMessage(list);
break;
case 5:
System.out.println("退出成功!感谢你的使用!");
// System.exit(0);
return;
default:
System.out.println("你的输入有误!请重新输入:");
break;
}
}
}
//定义添加方法
public static void AddMessage(ArrayList<Student> list) {
Student s=new Student();
Scanner sc=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
System.out.println("请输入添加学生的学号:");
s.setId(sc.nextLine());
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(s.getId())){
System.out.println("当前学号已存在!");
return;
}
}
System.out.println("请输入添加学生的姓名:");
s.setName(sc.nextLine());
System.out.println("请输入添加学生的性别:");
s.setSex(sc.nextLine());
System.out.println("请输入添加学生的年龄:");
s.setAge(sc2.nextInt());
System.out.println("请输入添加学生的现住址:");
s.setAddress(sc.nextLine());
list.add(s);
System.out.println("添加学生成功!");
}
//定义查看信息
public static void ShowMessage(ArrayList<Student> list){
if(list.size()==0){
System.out.println("当前系统还没有信息,请先添加信息!");
return;
}
System.out.println("学号:"+"\t\t姓名:"+"\t性别:"+"\t年龄:"+"\t现住址:");
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getName().length()<=2)
System.out.println(list.get(i).getId()+"\t\t"+list.get(i).getName()+"\t\t"+list.get(i).getSex()+"\t\t"+list.get(i).getAge()+"岁\t\t"+list.get(i).getAddress());
else if(list.get(i).getName().length()>2){
System.out.println(list.get(i).getId()+"\t\t"+list.get(i).getName()+"\t"+list.get(i).getSex()+"\t\t"+list.get(i).getAge()+"岁\t\t"+list.get(i).getAddress());
}
}
}
//定义删除方法
public static void DeleteMessage(ArrayList<Student> list){
System.out.println("请输入想要删除学生的学号:");
while(true){
Scanner sc=new Scanner(System.in);
String id=sc.nextLine();
if(list.size()==0){
System.out.println("当前系统还没有此位同学的信息,请先添加信息!");
return;
}
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)){
list.remove(i);
System.out.println("删除学生信息成功!");
return;
}else{
if(id.equals("0")){
System.out.println("操作成功!");
return;
}else{
System.out.println("学号输入错误,请重新输入(输入0返回到主界面):");
break;
}
}
}
}
}
//定义修改方法
public static void UpdataMessage(ArrayList<Student> list){
System.out.println("请输入想要修改学生的学号:");
while(true){
Scanner sc=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
String id=sc.nextLine();
int count=0;
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)){
System.out.println("请输入修改后的姓名:");
list.get(i).setName(sc.nextLine());
System.out.println("请输入修改后的性别:");
list.get(i).setSex(sc.nextLine());
System.out.println("请输入修改后的年龄:");
list.get(i).setAge(sc2.nextInt());
System.out.println("请输入修改后的现住址:");
list.get(i).setAddress(sc.nextLine());
System.out.println("修改学生信息成功!");
return;
}
count++;
}
if(list.size()==0){
System.out.println("当前系统还没有此位同学的信息,请先添加信息!");
return;
}else if(count==list.size()){
if(id.equals("0")){
System.out.println("操作成功!");
return;
}else{
System.out.println("当前学号不存在!请重新输入(输入0退回到主界面):");
}
}
}
}
}