为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季 5-4学生选课代码

标签:
Java

package com.imooc.collection;


import java.util.Set;

import java.util.Map;

import java.util.Map.Entry;

import java.util.HashMap;

import java.util.Scanner;


public class MapTest {


/**

* 创建学生Map集合,规定泛型,键值String,value值Student 用来承装学生类型对象

*/

public Map<String, Student> students;


/**

* 在构造器中初始化students属性

*/

public MapTest() {

this.students = new HashMap<String, Student>();

}


/**

* 测试添加:输入学生ID,判断是否被占用 若未被占用,则输入姓名,创建新学生对象, 并且添加到students中

*/

int i = 0;

public void testPut() { 

while (i < 3) {

i = putOne();//这个方法是一次增加一个

// i++;// 增加一名学生;

}

}

/**

* 一次增加一名学生

*/

private int putOne() {

Scanner input = new Scanner(System.in);

System.out.print("添加学生ID:");

String ID = input.next();

// 判断ID是否存在

if (students.get(ID) == null) {// 判断Map中的key值是否有相同的,没有就进入下一步

Student stus = students.get(ID);

// 判断学生对象是否为空

if (stus == null) {

// 空学生对象就提示输入学生姓名

System.out.print("输入学生姓名:");

String name = input.next();

// 创建新的学生对象

Student newStu = new Student(ID, name);

// 通过调用Map集合中的put()方法,添加ID-学生映射

students.put(ID, newStu);

System.out.println("成功添加学生:" + students.get(ID).getName());

}

return i+1;

} else {

System.out.println("该ID已存在!");

return i;

}

}

/**

* 测试Map的keySet()方法; 读取学生信息

*/

public void testKeySet() {

// 获取学生数量,集合的容量

System.out.println("共有" + students.size() + "名学生~");

System.out.println("ID\t" + "姓名");

// 通过keySet方法,返回Map中的所有"键"的Set集合

Set<String> stuID = students.keySet();

// 遍历keySet,取得每一个键,再调用get方法获取每个键对应的value

for (String keySet : stuID) {// stuID是一个键值的集合,通过遍历集合,获取每一个键值

Student stus = students.get(keySet);// 通过键值获取到对应value学生对象

if (stus != null) {// 判断学生对象不为空就获取姓名

System.out.println(stus.getID() + "\t" + stus.getName());

}

}

}


/**

* 测试删除Map中的映射 remove()

*/

public void testRemove() {

Scanner input = new Scanner(System.in);

while (true) {

System.out.print("请输入要删除的学生ID:");

String ID = input.next();

Student stu = students.get(ID);

// 判断如果学生对象是空则继续循环

if (stu == null) {

System.out.println("该ID不存在!");

continue;

}

// 不为空则删除ID对应的学生,打印一下删除学生的姓名,然后退出循环,别忘了

students.remove(ID);

System.out.println("已删除学生:" + stu.getName());

break;

}

}


/**

* 利用put()方法修改Map中已有的映射

*/

public void testModify() {

Scanner input = new Scanner(System.in);

while (true) {

System.out.print("输入要修改的学生ID:");

String id = input.next();

Student stu = students.get(id);

if (stu == null) {

System.out.println("该ID不存在!");

continue;

}

System.out.println("该学生姓名:" + stu.getName());

System.out.println("请输入新名字:");

String name = input.next();

students.put(id, (new Student(id, name)));

System.out.println("修改成功!");

break;

}

}


/**

* 通过 entrySet()访问学生集合数据 entrySet();返回的是键值对集合

*/

public void testeEntrySet() {

System.out.println("学生列表");

// System.out.println("ID\t" + "姓名");


Set<Entry<String, Student>> stuSet = students.entrySet();


for (Entry<String, Student> stu : stuSet) {// foreach()

System.out.println("获取键:" + stu.getKey() + ",对应的值为:" + stu.getValue().getName());

}

}


public static void main(String[] args) {

Scanner input = new Scanner(System.in);

MapTest mt = new MapTest();


mt.testPut();

System.out.println("-------------------");

mt.testKeySet();

System.out.println("-------------------");

while (true) {


System.out.println("a.修改\tb.删除\tc.添加新学生\t0.退出");

String num = input.next();


if (num.equals("a")) {

mt.testModify();

} else if (num.equals("b")) {

mt.testRemove();

} else if (num.equals("c")) {

mt.putOne();

}else if (num.equals("0")) {

System.out.println("退出系统!");

break;

} else {

System.out.println("输入错误,请按提示输入~");

continue;

}


// switch (num) {

// case "a":

// mt.testModify();

// break;

// case "b":

// mt.testRemove();

// break;

// default:

// System.out.println("退出系统!");

// break;

// }

// break;

mt.testeEntrySet();

}


// System.out.println("-------------------");

// mt.testRemove();

// mt.testModify();

// System.out.println("-------------------");

// mt.testeEntrySet();


}

}
























package com.imooc.collection;import java.util.Set;import java.util.Map;import java.util.Map.Entry;import java.util.HashMap;import java.util.Scanner;public class MapTest {	/**	* 创建学生Map集合,规定泛型,键值String,value值Student 用来承装学生类型对象	*/	public Map<String, Student> students;	/**	* 在构造器中初始化students属性	*/	public MapTest() {		this.students = new HashMap<String, Student>();	}	/**	* 测试添加:输入学生ID,判断是否被占用 若未被占用,则输入姓名,创建新学生对象, 并且添加到students中	*/	int i = 0;	public void testPut() { 		while (i < 3) {			i = putOne();//这个方法是一次增加一个//			i++;// 增加一名学生;			}		}		/**	* 一次增加一名学生	*/	private int putOne() {		Scanner input = new Scanner(System.in);				System.out.print("添加学生ID:");		String ID = input.next();		// 判断ID是否存在		if (students.get(ID) == null) {// 判断Map中的key值是否有相同的,没有就进入下一步			Student stus = students.get(ID);			// 判断学生对象是否为空			if (stus == null) {				// 空学生对象就提示输入学生姓名				System.out.print("输入学生姓名:");				String name = input.next();				// 创建新的学生对象				Student newStu = new Student(ID, name);				// 通过调用Map集合中的put()方法,添加ID-学生映射				students.put(ID, newStu);				System.out.println("成功添加学生:" + students.get(ID).getName());			}			return i+1;		} else {			System.out.println("该ID已存在!");			return i;		}	}	/**	* 测试Map的keySet()方法; 读取学生信息	*/	public void testKeySet() {		// 获取学生数量,集合的容量		System.out.println("共有" + students.size() + "名学生~");		System.out.println("ID\t" + "姓名");		// 通过keySet方法,返回Map中的所有"键"的Set集合		Set<String> stuID = students.keySet();		// 遍历keySet,取得每一个键,再调用get方法获取每个键对应的value		for (String keySet : stuID) {// stuID是一个键值的集合,通过遍历集合,获取每一个键值			Student stus = students.get(keySet);// 通过键值获取到对应value学生对象			if (stus != null) {// 判断学生对象不为空就获取姓名				System.out.println(stus.getID() + "\t" + stus.getName());			}		}	}	/**	* 测试删除Map中的映射 remove()	*/	public void testRemove() {		Scanner input = new Scanner(System.in);		while (true) {			System.out.print("请输入要删除的学生ID:");			String ID = input.next();			Student stu = students.get(ID);			// 判断如果学生对象是空则继续循环			if (stu == null) {				System.out.println("该ID不存在!");				continue;			}			// 不为空则删除ID对应的学生,打印一下删除学生的姓名,然后退出循环,别忘了			students.remove(ID);			System.out.println("已删除学生:" + stu.getName());			break;		}	}	/**	* 利用put()方法修改Map中已有的映射	*/	public void testModify() {		Scanner input = new Scanner(System.in);		while (true) {			System.out.print("输入要修改的学生ID:");			String id = input.next();			Student stu = students.get(id);			if (stu == null) {				System.out.println("该ID不存在!");				continue;			}			System.out.println("该学生姓名:" + stu.getName());			System.out.println("请输入新名字:");			String name = input.next();			students.put(id, (new Student(id, name)));			System.out.println("修改成功!");			break;		}	}	/**	* 通过 entrySet()访问学生集合数据 entrySet();返回的是键值对集合	*/	public void testeEntrySet() {		System.out.println("学生列表");		// System.out.println("ID\t" + "姓名");		Set<Entry<String, Student>> stuSet = students.entrySet();		for (Entry<String, Student> stu : stuSet) {// foreach()			System.out.println("获取键:" + stu.getKey() + ",对应的值为:" + stu.getValue().getName());		}	}	public static void main(String[] args) {		Scanner input = new Scanner(System.in);		MapTest mt = new MapTest();		mt.testPut();		System.out.println("-------------------");		mt.testKeySet();		System.out.println("-------------------");		while (true) {			System.out.println("a.修改\tb.删除\tc.添加新学生\t0.退出");			String num = input.next();			if (num.equals("a")) {				mt.testModify();			} else if (num.equals("b")) {				mt.testRemove();			} else if (num.equals("c")) {				mt.putOne();			}else if (num.equals("0")) {				System.out.println("退出系统!");				break;			} else {				System.out.println("输入错误,请按提示输入~");				continue;			}//				switch (num) {//				case "a"://					mt.testModify();//					break;//				case "b"://					mt.testRemove();//					break;//				default://					System.out.println("退出系统!");//					break;//				}//				break;			mt.testeEntrySet();		}//		System.out.println("-------------------");		// mt.testRemove();		// mt.testModify();//		System.out.println("-------------------");//		mt.testeEntrySet();	}}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消