Trie樹使用實例

本文簡單介紹下apache collection4中的PatriciaTrie的使用。算法

Trie樹

Trie樹,又稱字典樹,單詞查找樹或者前綴樹,是一種用於快速檢索的多叉樹結構。apache

  • 應用
    常常被搜索引擎系統用於文本詞頻統計。同時,它也是不少算法和複雜數據結構的基礎,如後綴樹,AC自動機等
  • 優勢
    最大限度地減小無謂的字符串比較,查詢效率比哈希表高。
  • 缺點
    若是系統中存在大量字符串且這些字符串基本沒有公共前綴,則相應的trie樹將很是消耗內存,這也是trie樹的一個缺點。

maven

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.1</version>
        </dependency>

使用

@Test
    public void testContains(){
        PatriciaTrie<Double> t = new PatriciaTrie<Double>();

        t.put("ronak", 100.0);
        t.put("ronald", 90.0);
        t.put("rat", 50.0);
        t.put("robert", 200.0);
        t.put("bat", 44.0);
        t.put("batman", 440.0);


        System.out.println(t.containsKey("ronak"));
        System.out.println(t.selectKey("ro"));
        System.out.println(t.prefixMap("r"));
        System.out.println(t.prefixMap("ro"));
        System.out.println(t.prefixMap("ron"));
    }

輸出數據結構

true
robert
{rat=50.0, robert=200.0, ronak=100.0, ronald=90.0}
{robert=200.0, ronak=100.0, ronald=90.0}
{ronak=100.0, ronald=90.0}

doc

相關文章
相關標籤/搜索