Java设计模式之迭代器
学习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); } } }