JAVA之利用集合操作学生数据

开发工具与关键技术:Eclipse、ArrayList
作者:LJR
撰写时间:2020年 08 月 08 日

定义一个Student类,里面添加:
private String id;
private String name;
private String age;
private String address;
这几个字段,并进行重载,get、set方法
下面是对一些学生数据的小处理:

public static void main(String[] args) {
		// 创建集合对象,用于存储数据
		ArrayList<Student> array = new ArrayList<Student>();

		// 为了能够让程序回来开始继续使用,使用while语句
		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);
			String choiceString = sc.nextLine();
			switch (choiceString) {
			case "1":
				// 查看学生
				findAllStudent(array);
				break;
			case "2":
				// 添加学生
				addStudent(array);
				break;
			case "3":
				// 删除学生
				deleteStudent(array);
				break;
			case "4":
				// 修改学生
				updateStudent(array);
				break;
			case "5":
				// 退出
			default:
				System.out.println("谢谢你的使用");
				System.exit(0);
				break;
			}
		}
	}
	// 查询集合;
	public static void findAllStudent(ArrayList<Student> array) {
		// 首先判断集合中是否有数据,如果没有数据就输出提示,并不能往下执行

		if (array.size() == 0) {
			System.out.println("不好意思,目前没有学生信息可供查询,请回去先添加学生信息!");
			return;
		}
		System.out.println("学号 \t姓名\t年龄\t居住地");
		for (int i = 0; i < array.size(); i++) {
			Student s = array.get(i);
			System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
		}
	}
// 添加学生--已判断学号是否重复
	public static void addStudent(ArrayList<Student> array) {
		Scanner sc = new Scanner(System.in);

		// 为了ID能被访问到,ID就写在循环外
		String id;

		// 让代码回到添加学号,循环使用
		while (true) {
			System.out.println("请输入你的学生号:");
			id = sc.nextLine();
			// 定义标记
			boolean flag = false;
			// 遍历每一个集合
			for (int i = 0; i < array.size(); i++) {
				Student s = array.get(i);
				// 获取学生的学号和键盘录入的进行比较
				if (s.getId().equals(id)) {
					flag = true;
					break;
				}
			}
			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.setId(id);
		s.setName(name);
		s.setAge(age);
		s.setAddress(address);
		// 把学生对象作为元素添加到集合
		array.add(s);
		// 输出
		System.out.println("添加学生成功!");
	}
// 删除学生
	public static void deleteStudent(ArrayList<Student> array) {
		// 查找键盘录入的学号,集合存在就进行删除,不存在就提示学生不存在
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要删除学生的学号");
		String id = sc.nextLine();
		int index = -1;
		  for (int i = 0; i < array.size(); i++) { 
			  //获取到每一个学生对象
			  	Student s=array.get(i);
		  //进行比较 
			  if (s.getId().equals(id)) { 
				 index=i;
				  break;
				  } 
			  }
		  if (index==-1) {
			System.out.println("学生不存在,请回去重新选择!");
		}else {
			array.remove(index);
			System.out.println("学生删除成功!");
		}
	}
//修改学生
	public static void updateStudent(ArrayList<Student> array) {
		//查询键盘录入的学号是否存在,存在就进行修改
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要修改的学号");
		String id =sc.nextLine();
		int index=-1;
		for (int i = 0; i < array.size(); i++) {
			Student s=array.get(i);
			if (s.getId().equals(id)) {
				index=i;
				break;
			}
		}
		if (index==-1) {
			System.out.println("不好意思学号不存在,请重新输入!");
		}else {
			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.setId(id);
			s.setName(name);
			s.setAge(age);
			s.setAddress(address);
			array.set(index, s);
			System.out.println("修改学生成功!");
		}
	}
	~~~~~~~~~~~~
最后结果输出是:
----欢迎来到学生管理系统------
1.查看学生
2.添加学生
3.删除学生
4.修改学生
5.退出
选择2进行添加一行数据,然后进行查看。
结果如下:
学号 	姓名		年龄		居住地
xs001	学生	01	18		北京

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值