簡體   English   中英

我如何遍歷HashMap <String, Set<String> &gt;並返回哪個Set <String> 是最大的?

[英]How do I iterate through a HashMap<String, Set<String>> and return which Set<String> is the largest?

我試圖弄清楚如何在哈希圖中返回最大的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;

盡管其他答案已經說明了如何修復代碼,但這是在單個語句中執行此操作的另一種方法:

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

你可以試試這個

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; 

您可以這樣做:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM