簡體   English   中英

按長度存儲和排序單詞的最有效方法?

[英]Most efficient way to store and sort words by length?

由於許多單詞的長度可能相同,因此對某個數據庫的插入操作可能會非常昂貴。

我看到了以下有關按長度存儲和排序單詞的建議。 哪個最有效?

  1. 鍵:單詞長度,值:所有具有該長度的單詞的集合。 使用HashMap: 在一次讀取中按長度對文件中的所有單詞進行排序。 (Java)

  2. 使用番石榴的MultiMap: https ://stackoverflow.com/a/4244798/2653179

  3. 樹圖? 或將單詞存儲在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.

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