gpt4 book ai didi

java - 无法删除 java.util.Map.Entry 中的所有元素

转载 作者:行者123 更新时间:2023-11-30 08:10:43 24 4
gpt4 key购买 nike

在Entry Map的所有元素中,我只能移除至少一个位置的元素。谁能解释一下是什么原因?

Ps: 我觉得 EntryMap 和 HashMap 有问题

这是完整的代码:

import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

public class Neti {

static Map<Integer, String> mm = new HashMap<>();

static void removeEntry(Integer val) {

for (Entry<Integer, String> entry : mm.entrySet()) {

if (entry.getKey() == val) {

mm.remove(val);

break;
}
}
}

public static void main(String[] args) {
mm.put(123, "one");
mm.put(1234, "two");
mm.put(12345, "three");
mm.put(123456, "four");

Scanner scanner = new Scanner(System.in);
System.out.println("We have: " + mm);
for (;;) {
System.out.print("Number to remove: ");

int val = scanner.nextInt();

removeEntry(val);
System.out.println("Map entries are: " + mm.toString());
}
}

}

最佳答案

您的整个 removeEntry 方法可以用一条语句替换 - mm.remove(val)。无需遍历 entrySet 即可找到要删除的键,即使有,对引用类型使用 == 通常也是错误的。

关于java - 无法删除 java.util.Map.Entry 中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com