学习Demo
Java设计模式之迭代器
使用 HashMap 来存储学生信息:键为学生学号,值为姓名
毕业时,需要用户输入学生的学号,并根据学号进行删除操作
码上行动
代码如下(示例):
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
/**
* Java设计模式之迭代器
* 使用 HashMap 来存储学生信息【键为学生学号,值为姓名】
* 毕业时,需要用户输入学生的学号,并根据学号进行删除操作
* @Author Hateyes
* @Date 2020-07-25 9:25
*/
public class HashMapDemo {
public static void main(String[] args) {
HashMap users = new HashMap();
//HashMap的put方法向Map集合中添加键-值对
users.put("11", "张浩太");
users.put("22", "刘思诚");
users.put("33", "王强文");
users.put("44", "李国量");
users.put("55", "王路路");
System.out.println("******** 学生列表 ********");
//Java设计模式之迭代器
Iterator iterator = users.keySet().iterator(); //HashMap的keySet方法返回Map集合中所有键的Set集合
while (iterator.hasNext()){ //Iterator的hasNext方法检测集合中是否还有元素
Object key = iterator.next(); //Iterator的next方法返回迭代器的下一个元素,并且更新迭代器的状态
Object val = users.get(key); //HashMap的get方法返回Map集合中指定键对象所对应的值
System.out.println("学号:" + key + ",姓名:" + val);
}
//Scanner类用来获取用户的输入
Scanner scanner = new Scanner(System.in); //System.in读取标准输入设备数据,其数据类型为InputStream
System.out.println("请输入要删除的学号:");
//Scanner的next方法接收用户的输入
int num = scanner.nextInt(); //next方法不接受空格和tab键,nextLine方法可接收空格或者tab键
//HashMap的containsKey方法用于判断Map键中是否包含某个键,String.valueOf 方法将 int 变量 num 转换成字符串
if (users.containsKey(String.valueOf(num))){ //判断是否包含指定键
users.remove(String.valueOf(num)); //如果包含就删除
} else {
System.out.println("该学生不存在!");
}
System.out.println("******** 学生列表 ********");
iterator = users.keySet().iterator();
while (iterator.hasNext()){
Object key = iterator.next();
Object val = users.get(key);
System.out.println("学号:" + key + ",姓名:" + val);
}
}
}