Can';t删除java.util.Map.Entry中的所有元素

Can';t删除java.util.Map.Entry中的所有元素,java,hashmap,Java,Hashmap,在条目映射中的所有元素中,我只能删除至少一个位置的元素。有人能解释一下原因吗 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

在条目映射中的所有元素中,我只能删除至少一个位置的元素。有人能解释一下原因吗

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());
        }
    }

}
import java.util.HashMap;
导入java.util.Map;
导入java.util.Map.Entry;
导入java.util.Scanner;
公共类网络{
静态映射mm=新的HashMap();
静态void removentry(整数val){
对于(条目:mm.entrySet()){
if(entry.getKey()==val){
mm.移除(val);
打破
}
}
}
公共静态void main(字符串[]args){
mm.put(123,“一”);
mm.put(1234,“两”);
mm.put(12345,“三”);
mm.put(123456,“四”);
扫描仪=新的扫描仪(System.in);
System.out.println(“我们有:+mm);
对于(;;){
系统输出打印(“要删除的编号:”);
int val=scanner.nextInt();
远程入口(val);
System.out.println(“映射条目为:“+mm.toString());
}
}
}

您的整个
removeEntry
方法可以被一条语句取代-
mm.remove(val)
。无需迭代
入口集
来查找要删除的密钥,即使有,使用
=
作为引用类型通常也是错误的。

使用等于而不是==进行比较Integers@Eran:谢谢:D,但是为什么我使用==它不运行true?
==
比较引用。如果创建两个具有相同值的
Integer
实例(假设它不在IntegetCache的范围内,即-128到127),则它们不是相同的对象,因此
=
返回false,即使它们具有相同的
int
值。