我有一個場景,我需要存儲數據層次列表地圖的地圖在內存中處理。而且,目前我米思維來實現數據結構更好的數據結構,以更快地讀取列表地圖的地圖
Map<Integer, Map<String, Map<Integer, List<String> > > >
和混凝土類型,
HashMap<stdIdInt, HashMap<libraryNameStr, HashMap<topicIdInt, ArrayList<bookNameStr> > > >
正如我不需要維護任何特定的順序,我M還想着更換List
與Set
(HashSet
)可能會提高性能。
儘管我已經嘗試到現在,我也認爲使用谷歌的'番石榴Multimap是一個可行的替代,但我不知道。
背景:我需要存儲的每個學生的ID &他們的興趣書名信息通過其主題類型將由庫名稱來進一步組織分類的細節。我需要根據庫名&主題類型來處理數據&顯示圖書名稱大多由學生ID和其他時間。一旦書名向用戶顯示,我需要從書名列表中刪除該條目。
數據結構需要保持&以高速率處理數千個條目並且將保存數據較長時間。
請建議一種方法或其他數據結構以加快處理速度,並且請提供關於數據結構/集合類的類型及其使用組合的信息。
(請注意我上面描述的場景是不準確的情況,但我想我最好的抽象的數據層次結構的複雜性)
「高速率」和「長時間」是什麼意思?對我來說,這一切聽起來都像一個數據庫。 – skaffman
@skaffman在高峯時間,請求將達到〜1000+ /秒,並且數據將保留一天左右,之後將在第二天發佈新數據。是的,我試圖在DB上做的東西,因爲每次碰到數據庫時都知道所有的數據只是用於處理,而不是永久存儲。 – manikanta
這聽起來像是不成熟的優化。我會採取@ Tomasz的建議來改進抽象,然後確定數據結構是否能夠充分執行某些基準測試。如果沒有,請確定太慢的部分並改進。 –