java - 如何删除依赖于 for 循环内用户输入的 Map 键?
问题描述
我对 Java 还很陌生,我刚开始学习 HashMap。students
我的问题是:如果我的 Map 中的一个键位于 for 循环中并且它取决于用户输入,我该如何删除它?为了更容易可视化,请参阅下面的代码:
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());
}
}
}
解决方案
对于hasmap,要删除一个项目,请使用以下(我相信你已经知道了)
students.remove(Data);
对于您的 for 循环,您当然是根据用户的输入来确定是否要添加(或删除)项目。您需要让系统知道您是否要删除(或只是添加)。正常的做法是添加“Remove:[Data]”,当系统检测到用户输入中有“Remove:”时,会从地图中删除“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);
}
为了让用户知道如何使用它,请将您的输入提示从“输入名称”更改为“输入名称(或输入[删除:名称]删除)”
推荐阅读
- pine-script - 变量“i”不能是可变的
- python - 关闭浏览器窗口时,在 ubuntu 屏幕中运行的 Jupyter 实验室会终止
- java - 混合两个字符串会产生不希望的输出
- javascript - 在 super() 方法中访问 this - javascript
- python - 如何调试 scipy.integrate.solve_ivp?
- javascript - 轮班调度逻辑以这样的方式分配休息日,这样如果员工有一周的休息时间,那么其他员工应该轮班
- spring - Spring-core源代码下载不完整
- codeigniter - 当我在我的 js 代码中添加 easyimage 时,此错误将出现“资源名称“easyimage”未在“。我不明白。为什么
- python - 熊猫:有两个条件的组内累计和
- javascript - 从 typescript 定义 d.ts 文件动态加载接口