如何删除依赖于for循环中用户输入的map键?

gwbalxhn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(331)

我对java还比较陌生,我刚开始学习hashmap。我的问题是:如何删除 students 如果它在for循环中并且依赖于用户输入,那么Map?为便于可视化,请参阅下面的代码:

import java.util.Map;
import java.util.HashMap;
import java.util.Scanner;

public class StudentList {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Map<String, String> students = new HashMap<>();

        for (int i = 1; i <=3; i++) {
            System.out.println("Enter student number " + i + ": ");
            String stud_num = scan.nextLine();
            System.out.println("Enter name " + i + ": ");
            String name = scan.nextLine();
            students.put(stud_num, name);
            //I want to remove a key here using students.remove(key)
        }

        for (Map.Entry e : students.entrySet()){
            System.out.println(e.getKey() + ": " + e.getValue());
        }
    }
}
mqkwyuun

mqkwyuun1#

对于hasmap,要删除项目,请使用以下命令(我相信您已经知道)

students.remove(Data);

对于for循环,当然要根据用户的输入来确定是否要添加(或删除)和项。您需要让系统知道您是要删除(还是只添加)。通常的方法是说add“remove:[data]”,当系统检测到用户输入中有“remove:”时,它将从Map中删除“data”。
所以在你的for循环中,请改变

students.put(stud_num, name);

if name.contains("Remove:") {
String removestring = name.replace("Remove:","");
students.remove(removestring);
}
else {
students.put(stud_num, name);
}

为了让用户知道如何使用它,请将您的输入提示从“输入名称”更改为“输入名称(或[remove:name]删除“

相关问题