亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果在 if 條件下使用,哈希映射的 isEmpty() 和 size() 之間有什么區別?

如果在 if 條件下使用,哈希映射的 isEmpty() 和 size() 之間有什么區別?

大話西游666 2022-08-03 16:12:56
我必須處理哪個正在發生。我應該使用或()內部條件嗎?NullPointerExceptionHashmapmap.isEmpty()map.size() > 0if哪一個更好?
查看完整描述

4 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

以下是類中 和 在類中的實現:size()isEmpty()HashMap


public int size() {

    return size;

}


public boolean isEmpty() {

    return size == 0;

}

因此,只需檢查返回的相同變量即可。它主要只是一種方便的方法。您可能希望使用手動比較大小的一個原因是,前者可以更清楚地了解您的代碼實際檢查的內容。HashMap#isEmpty()sizesize()isEmpty()


查看完整回答
反對 回復 2022-08-03
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

首先對對象進行空檢查,然后檢查以避免MapEmptyNullPointerException

if(map != null && !map.isEmpty())


查看完整回答
反對 回復 2022-08-03
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

map.size()是O(1),而復雜度也是一樣的,所以從復雜度和執行點來看,它們之間基本上沒有區別。map.isEmpty()


如果你仔細看看


public boolean isEmpty() {

    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) {

     map.put(map.size(), s);

 }


查看完整回答
反對 回復 2022-08-03
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

map.size() == 0等于 。例如,IntelliJ IDEA具有始終使用的檢查而不是。map.isEmpty()isEmpty()size() == 0



查看完整回答
反對 回復 2022-08-03
  • 4 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號