有人告诉我应该删除Map的最后一个或第三个条目,但我找不到任何解决方法来解决这些问题,即如何获取特定条目并将其删除。
代码如下:
Scanner reader = new Scanner(System.in);
String input1, input2;
Map<String, String> students = new HashMap<>();
for(int i = 1; i <= 3; i++){
System.out.print("Enter student number " + i + ": ");
input1 = reader.next();
System.out.print("Enter first name " + i + ": ");
input2 = reader.next();
students.put(input1, input2);
}
System.out.println("Student List:");
for(Map.Entry entry: students.entrySet()){
System.out.println(entry.getKey() + " - " + entry.getValue());
}
我试着用 students.remove(students.get(3), students.get(3));
但还是不行。有没有可能的解决办法?请帮忙。
3条答案
按热度按时间2mbi3lxu1#
从迭代和从Map中删除示例:
你可以这样做
但是请注意,上述操作可以
O(n)
对于hashmap。LinkedHashMap
正如其他人所指出的那样O(1)
每次删除时间km0tfn4u2#
我认为在你的例子中,直接删除最后一个条目就足够了,而不是在Map上循环寻找它。使用
LinkedHashMap
要在打印条目时保持顺序:zzlelutf3#
请使用linkedhashmap。它扩展了hashmap并按插入顺序维护Map中条目的链接列表。