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

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

HashMap<String, Set<String>> 并返回哪個 Set<String> 最大?

HashMap<String, Set<String>> 并返回哪個 Set<String> 最大?

飲歌長嘯 2022-06-08 17:46:09
我試圖弄清楚如何在 Hashmap 中返回最大的 Set。我知道這樣做的基本方法,但我不能正確。我嘗試通過執行以下代碼迭代哈希圖中的所有鍵。我也剛剛意識到,通過執行此代碼,我將只能返回最大集合的大小,而不是實際集合本身。有更好的方法嗎?我將不勝感激任何幫助!謝謝!Map<String, Set<String>> category = new Hashmap<String, Set<String>>();int largest = //someInt;for(String d : category.keySet()) {    if (category.get(d).size() > //largest)        largest = category.get(d).size();} return largest;
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

你可以這樣做:


Map<String, Set<String>> category = new HashMap<>();

Set<String> set = new HashSet<>();

int largest = 0;

for(String d : category.keySet()) {

    if (category.get(d).size() > largest) {

        largest = category.get(d).size();

        set = category.get(d);

    }

}

return set;


查看完整回答
反對 回復 2022-06-08
?
蕪湖不蕪

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

雖然其他答案顯示了如何修復代碼,但這是在單個語句中執行此操作的另一種方法:

Set<String> largestSet = category.values().stream()
        .max(Comparator.comparingLong(Set::size))
        .orElse(null);


查看完整回答
反對 回復 2022-06-08
?
Helenr

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

你可以試試這個


Map<String, Set<String>> category = new Hashmap<String, Set<String>>();

int largest = 0;

Set<String> largeSet = new HashSet<String>();

for(String d : category.keySet()) {

    if (category.get(d).size() > largest)

        largest = category.get(d).size();

        largeSet = category.get(d);

}

return largeSet; 


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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