如何删除依赖于 for 循环内用户输入的 Map 键?
How do I remove a Map key that depends on user input inside a for loop?
我是 Java 的新手,刚开始学习 HashMap。我的问题是:如果我的 students
映射位于 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循环,你当然是根据用户的输入来决定是否要添加(或删除)和item。您需要让系统知道您是否要删除(或只是添加)。正常的方式是说添加“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);
}
为了让用户知道如何使用它,请将您的输入提示从“输入名称”更改为“输入名称(或输入 [Remove:name] 删除)”
我是 Java 的新手,刚开始学习 HashMap。我的问题是:如果我的 students
映射位于 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循环,你当然是根据用户的输入来决定是否要添加(或删除)和item。您需要让系统知道您是否要删除(或只是添加)。正常的方式是说添加“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);
}
为了让用户知道如何使用它,请将您的输入提示从“输入名称”更改为“输入名称(或输入 [Remove:name] 删除)”