如果在 if 条件下使用,哈希映射的 isEmpty() 和 size() 之间有什么区别?

我必须处理哪个正在发生。我应该使用或()内部条件吗?NullPointerExceptionHashmapmap.isEmpty()map.size() > 0if

哪一个更好?


大话西游666
浏览 142回答 4
4回答

慕容708150

以下是类中 和 在类中的实现:size()isEmpty()HashMappublic int size() {    return size;}public boolean isEmpty() {    return size == 0;}因此,只需检查返回的相同变量即可。它主要只是一种方便的方法。您可能希望使用手动比较大小的一个原因是,前者可以更清楚地了解您的代码实际检查的内容。HashMap#isEmpty()sizesize()isEmpty()

DIEA

首先对对象进行空检查,然后检查以避免MapEmptyNullPointerExceptionif(map != null && !map.isEmpty())

杨__羊羊

map.size()是O(1),而复杂度也是一样的,所以从复杂度和执行点来看,它们之间基本上没有区别。map.isEmpty()如果你仔细看看public boolean isEmpty() {&nbsp; &nbsp; return size == 0;}它什么都不做,只是返回大小==0;其他偏爱的原因可能是:.isEmpty().size()它更具表现力(代码更易于阅读和维护)仅供参考,在处理集合时,与map.isEmpty()相比具有各种优势,就像您可以稍后不执行以下操作一样。map.size()map.size()String str = "abcd";Map<Integer,String> map = new HashMap<>();String[] strings = str.split("");for(String s: strings) {&nbsp; &nbsp; &nbsp;map.put(map.size(), s);&nbsp;}

尚方宝剑之说

map.size() == 0等于 。例如,IntelliJ IDEA具有始终使用的检查而不是。map.isEmpty()isEmpty()size() == 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java