第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 HashMap 的/HashSet 的 hashCode() 函數(shù)對數(shù)據(jù)進行排序

使用 HashMap 的/HashSet 的 hashCode() 函數(shù)對數(shù)據(jù)進行排序

繁星淼淼 2021-12-30 16:06:02
我一直在嘗試創(chuàng)造性地使用散列函數(shù)和散列圖?,F(xiàn)在我想知道是否有辦法通過強制沖突來存儲和排序數(shù)據(jù)。例如,輸入是一個巨大的字符串列表,目標(biāo)是打印出每個長度為 X 的字符串。如果我使用 HashCode 將所有字符串存儲在 HashSet 中...  @Override   public int hashCode() {       return s.length();   }然后,我會將所有內(nèi)容按其長度編入索引。然后理論上如果我想要所有長度為 3 的字符串,我會得到索引為 3 的字符串列表。我將如何獲得索引中的列表?這會是一個好主意嗎?
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

這不是目標(biāo)hashcode()。此外,在 HashMaps 中,對象未排序。在內(nèi)部是的,因為它們存儲在數(shù)組中(通過哈希碼的提醒),但該類不提供任何對其元素的索引訪問。


但是您可以擴展 a Map<Integer, List<String>>,您可以在其中將長度映射n到 lenght 字符串列表n,并實現(xiàn)此附加方法:


public void add(String s) {

    // null check here 

    List<String> list = get(s.length);

    if (list == null) {

        list = new ArrayList<>();

        put (s.lenght, list);

    }

    list.add(s);

}

然后像這樣使用它:


map.add("hello");

map.add("world");

map.add("knife");

map.add("good");

map.add("day");

map.get(5); // return list of hello, world, knife


查看完整回答
反對 回復(fù) 2021-12-30
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號