我有一個HashMap(String,Object)。關鍵是多個唯一ID的組合。我有一個輸入,一個字符串是鍵的一部分(1個唯一的ID)。我需要使用HashMap中的值,而不使用HashMap中的數千個值。在HashMap.get使用任何正則表達式語句使用部分密鑰獲取HashMap的值
才能實現它()?
我的重點是XXX.YYY.ZZZ其中xxx.zzz的組合在整個地圖是唯一的。我有xxx和zzz作爲輸入。對於一個給定的zzz,我還有一組可能的yyy值(5-6種可能性會增加)。
我現在有兩個選擇來解決這個問題。
- Map.Entry的檢查是否鑰匙啓動,並與xxx和ZZZ分別爲
- 試錯法 我結束。使用所有可能的yyys形式鍵xxx.yyy.zzz並使用.contains() ii。檢查密鑰是否存在。但是,這樣,如果我爲每個調用執行.contains()5-6次,在最壞的情況下是不是會循環5-6次? iii。另外我在stringpool中創建更多的字符串。
哪一個,我應該更喜歡哪個?
HashMap不能用於檢索密鑰部分。您需要完全匹配查找。 – Thilo
誰在這裏壓倒了所有的答案?不要拍攝使者。 HashMap只是沒有做到這一點... – Thilo
你的數據集有多大,你需要多長時間查詢一次?通過「數千」鍵的線性搜索可能並不太可怕。 「數十萬」可能會讓你陷入困境。 – Thilo