Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查地图中的内容?_Java - Fatal编程技术网

Java 如何检查地图中的内容?

Java 如何检查地图中的内容?,java,Java,我对Java中的映射有问题。 代码如下所示: Map<Object, Object> test = myClass.getMap(); int value = (int) test.get(myID); 现在我在问自己如何调试它,并找到你为什么它不工作?我很确定所有的键和值都在这张地图上 如何打印出整个地图,以便我可以搜索是否有钥匙?这是一张很长的地图 或者,找到问题的正确方法是什么?您可以使用map.containsKeykey来检查密钥是否存在 之所以使用NPE,是因为映射中m

我对Java中的映射有问题。 代码如下所示:

Map<Object, Object> test = myClass.getMap();
int value = (int) test.get(myID);
现在我在问自己如何调试它,并找到你为什么它不工作?我很确定所有的键和值都在这张地图上

如何打印出整个地图,以便我可以搜索是否有钥匙?这是一张很长的地图

或者,找到问题的正确方法是什么?

您可以使用map.containsKeykey来检查密钥是否存在

之所以使用NPE,是因为映射中myId的值为null,并且您正试图将其转换为无法保存非null值的基元int。将其更改为下面的语句将避免异常,除非映射测试本身为null


使用带有集成调试器的IDE:在映射实例化和初始化后的某处放置断点,有效地查看映射中的内容。

这里有多个问题:

映射测试可能为空。 不能从Object转换为int。需要将其转换为Integer。 我认为下面这一行不应该编译:

int value = (int) test.get(myID);
as get返回对象,您正试图将其转换为基元int。即使将其转换为整数:

上面的代码将抛出NPE,如果是getmyID;是空的。 您需要使用:

Integer value = (Integer) test.get(myID); 
您可以使用test.containsKeymyID检查密钥。最后做如下操作:

if(test!=null && test.containsKey(myID))
    Integer value = (Integer) test.get(myID);

但是,您应该在地图中使用。

如果您想打印地图,请回答您的问题:

for (Entry<Object, Object> entry : test.entrySet()) {
        System.out.println("Key:" + entry.getKey() + " Value:" + entry.getValue());
}

不过,containsKey方法可能正是您所需要的。

您还可以发布堆栈跟踪吗?检查test是否为null。检查test.getmyID是否为null。首先,确保myClass.getMap!=我同意,最有可能的测试是空的。如果对象恰好是整数,那么转换为int将成功。
Integer value = (Integer) test.get(myID); 
if(test!=null && test.containsKey(myID))
    Integer value = (Integer) test.get(myID);
for (Entry<Object, Object> entry : test.entrySet()) {
        System.out.println("Key:" + entry.getKey() + " Value:" + entry.getValue());
}