这是什么意思?地图何时为空?

时间:2013-12-12 21:40:36

标签: java collections map

如果我这样做

System.out.println(nameOfaHashMap);

当该地图为“空”时,系统显示“{}”。

在这种情况下,该地图是空的还是空的?

如果我愿意,我该怎么写:

if (nameOfanHashMap is != null)
{
    System.out.println(nameOfaHashMap);  
}
else System.out.println("I'm sorry, this map is empty!");

非常感谢大家,对不起我的英语e for my Java :-) 你这么快回复我,也非常感谢大家。

我写了这段代码,没关系:

if (disponibilita.isEmpty())
{
   System.out.println("Sorry, ..");
}
else 
   System.out.println(disponibilita);

5 个答案:

答案 0 :(得分:5)

如果它是null,那么它甚至不是地图;如果它是一张地图,那么只有它才有空的机会。

空地图的toString通常会返回{},而String.valueOf(null)会返回字符串"null",这就是打印的内容。

如果你想打印“对不起,这张地图是空的”,当你有一张地图,但它是空的,那么你需要

if (map.isEmpty()) System.out.println("sorry, this map is empty");

答案 1 :(得分:2)

docs中所述:

  

字符串表示由一系列键值映射组成   地图的entrySet视图的迭代器返回的顺序,包含在中   大括号(“{}”)。相邻的映射由字符“,”分隔   (逗号和空格)。每个键值映射都呈现为键   后跟一个等号(“=”),后跟相关的值。

这意味着地图为空,您可以通过调用isEmpty()进行测试。如果它为null,则只打印出null

答案 2 :(得分:1)

你的意思是,像这样?

if (nameOfanHashMap == null) {
    System.out.println("I'm sorry, this map is null!");
} else if (nameOfanHashMap.isEmpty()) {
    System.out.println("I'm sorry, this map is empty!");
} else {
    System.out.println(nameOfanHashMap);
} 

请注意,以Map打印的{} 为空,但非nullnull地图将打印为null

答案 3 :(得分:0)

如果地图为null,则其打印为null,就像任何其他对象一样。

除非是null,否则它必须是某种东西,{ }表示它是空的。

答案 4 :(得分:0)

将Object传递给System.out.println时,会调用其方法toString。

现在,如果地图已经实例化但是它是空的,那么

toString()

方法返回

  

{}

否则如果为null,则toString返回

  

最后,检查可以通过以下方式完成:

if (nameOfanHashMap == null) {
    System.out.println("I'm sorry, this map is null!");
} else if (nameOfanHashMap.isEmpty()) {
    System.out.println("I'm sorry, this map is empty!");
} else {
    System.out.println(nameOfanHashMap);
}