[英]Most efficient way to store and sort words by length?
由於許多單詞的長度可能相同,因此對某個數據庫的插入操作可能會非常昂貴。
我看到了以下有關按長度存儲和排序單詞的建議。 哪個最有效?
鍵:單詞長度,值:所有具有該長度的單詞的集合。 使用HashMap: 在一次讀取中按長度對文件中的所有單詞進行排序。 (Java)
使用番石榴的MultiMap: https ://stackoverflow.com/a/4244798/2653179
樹圖? 或將單詞存儲在ArrayList中,編寫比較函數,然后使用Collections.sort: Java:按長度,然后按字母順序對單詞列表進行排序
還是其他建議?
按長度存儲和排序單詞的最有效方法?
Map<Integer, List<String>>
-映射,其中鍵是單詞長度,值是包含單詞的列表
使用番石榴,您可以創建一個按長度排序的鍵的多圖:
TreeMultimap<Integer, String> map = TreeMultimap.create();
//as Java's map
NavigableMap<Integer, Collection<String>> asMap = map.asMap();
添加項目:
for (String word : new String[]{"cd", "efg", "k", "a", "b", "ab"}) {
map.put(word.length(), word);
}
System.out.println("words: " + map);
印刷品:
words: {1=[a, b, k], 2=[ab, cd], 3=[efg]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.