com.hankcs.hanlp.collection.trie.bintrie
类 BinTrie<V>

java.lang.Object
  继承者 com.hankcs.hanlp.collection.trie.bintrie.BaseNode<V>
      继承者 com.hankcs.hanlp.collection.trie.bintrie.BinTrie<V>
所有已实现的接口:
ITrie<V>, Comparable<BaseNode>

public class BinTrie<V>
extends BaseNode<V>
implements ITrie<V>

首字直接分配内存,之后二分动态数组的Trie树,能够平衡时间和空间

作者:
hankcs

嵌套类摘要
 
从类 com.hankcs.hanlp.collection.trie.bintrie.BaseNode 继承的嵌套类/接口
BaseNode.Status, BaseNode.TrieEntry
 
字段摘要
 
从类 com.hankcs.hanlp.collection.trie.bintrie.BaseNode 继承的字段
c, child, status, value
 
构造方法摘要
BinTrie()
           
 
方法摘要
protected  boolean addChild(BaseNode node)
          添加子节点
 int build(TreeMap<String,V> keyValueMap)
           
 LinkedList<Map.Entry<String,V>> commonPrefixSearchWithValue(char[] chars, int begin)
          前缀查询,通过字符数组来表示字符串可以优化运行速度
 LinkedList<Map.Entry<String,V>> commonPrefixSearchWithValue(String key)
          前缀查询,包含值
 boolean containsKey(String key)
           
 Set<Map.Entry<String,V>> entrySet()
          获取键值对集合
 V get(char[] key)
           
 V get(String key)
           
protected  char getChar()
           
 BaseNode getChild(char c)
          获取子节点
 V[] getValueArray(V[] a)
           
 Set<String> keySet()
          键集合
 boolean load(ByteArray byteArray, _ValueArray valueArray)
           
 boolean load(ByteArray byteArray, V[] value)
           
 boolean load(String path)
          只加载值,此时相当于一个set
 boolean load(String path, V[] value)
          从磁盘加载二分数组树
 _ValueArray newValueArray()
           
 Set<Map.Entry<String,V>> prefixSearch(String key)
          前缀查询
 void put(char[] key, V value)
           
 void put(String key, V value)
          插入一个词
 void remove(String key)
          删除一个词
 boolean save(DataOutputStream out)
          保存到二进制输出流
 boolean save(String path)
           
 int size()
           
 
从类 com.hankcs.hanlp.collection.trie.bintrie.BaseNode 继承的方法
compareTo, compareTo, getStatus, getValue, hasChild, setValue, toString, transition, walk, walkToLoad, walkToSave
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

BinTrie

public BinTrie()
方法详细信息

put

public void put(String key,
                V value)
插入一个词

参数:
key -
value -

put

public void put(char[] key,
                V value)

remove

public void remove(String key)
删除一个词

参数:
key -

containsKey

public boolean containsKey(String key)
指定者:
接口 ITrie<V> 中的 containsKey

get

public V get(String key)

get

public V get(char[] key)
指定者:
接口 ITrie<V> 中的 get

getValueArray

public V[] getValueArray(V[] a)
指定者:
接口 ITrie<V> 中的 getValueArray

entrySet

public Set<Map.Entry<String,V>> entrySet()
获取键值对集合

返回:

keySet

public Set<String> keySet()
键集合

返回:

prefixSearch

public Set<Map.Entry<String,V>> prefixSearch(String key)
前缀查询

参数:
key - 查询串
返回:
键值对

commonPrefixSearchWithValue

public LinkedList<Map.Entry<String,V>> commonPrefixSearchWithValue(String key)
前缀查询,包含值

参数:
key - 键
返回:
键值对列表

commonPrefixSearchWithValue

public LinkedList<Map.Entry<String,V>> commonPrefixSearchWithValue(char[] chars,
                                                                   int begin)
前缀查询,通过字符数组来表示字符串可以优化运行速度

参数:
chars - 字符串的字符数组
begin - 开始的下标
返回:

addChild

protected boolean addChild(BaseNode node)
从类 BaseNode 复制的描述
添加子节点

指定者:
BaseNode<V> 中的 addChild
返回:
true-新增了节点 false-修改了现有节点

size

public int size()

getChar

protected char getChar()
覆盖:
BaseNode<V> 中的 getChar

getChild

public BaseNode getChild(char c)
从类 BaseNode 复制的描述
获取子节点

指定者:
BaseNode<V> 中的 getChild
参数:
c - 子节点的char
返回:
子节点

save

public boolean save(String path)

build

public int build(TreeMap<String,V> keyValueMap)
指定者:
接口 ITrie<V> 中的 build

save

public boolean save(DataOutputStream out)
保存到二进制输出流

指定者:
接口 ITrie<V> 中的 save
参数:
out -
返回:

load

public boolean load(String path,
                    V[] value)
从磁盘加载二分数组树

参数:
path - 路径
value - 额外提供的值数组,按照值的字典序。(之所以要求提供它,是因为泛型的保存不归树管理)
返回:
是否成功

load

public boolean load(String path)
只加载值,此时相当于一个set

参数:
path -
返回:

load

public boolean load(ByteArray byteArray,
                    _ValueArray valueArray)

load

public boolean load(ByteArray byteArray,
                    V[] value)
指定者:
接口 ITrie<V> 中的 load

newValueArray

public _ValueArray newValueArray()


Copyright © 2014–2015 码农场. All rights reserved.