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);
        }
    }
}
 
posted @ 2020-09-19 16:31  无明之辈  阅读(530)  评论(0编辑  收藏  举报