node.java
来自「一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能」· Java 代码 · 共 50 行
JAVA
50 行
package com.aliasi.dict;import java.util.Arrays;class Node { static final DictionaryEntry[] EMPTY_ENTRIES = new DictionaryEntry[0]; static final char[] EMPTY_CHARS = new char[0]; static final Node[] EMPTY_NODES = new Node[0]; DictionaryEntry[] mEntries = EMPTY_ENTRIES; char[] mDtrChars = EMPTY_CHARS; Node[] mDtrNodes = EMPTY_NODES; Node getDtr(char c) { int i = Arrays.binarySearch(mDtrChars,c); return i < 0 ? null : mDtrNodes[i]; } Node getOrAddDtr(char c) { Node dtr = getDtr(c); if (dtr != null) return dtr; Node result = new Node(); char[] oldDtrChars = mDtrChars; Node[] oldDtrNodes = mDtrNodes; mDtrChars = new char[mDtrChars.length+1]; mDtrNodes = new Node[mDtrNodes.length+1]; int i = 0; for (; i < oldDtrChars.length; ++i) { if (oldDtrChars[i] > c) break; mDtrChars[i] = oldDtrChars[i]; mDtrNodes[i] = oldDtrNodes[i]; } mDtrChars[i] = c; mDtrNodes[i] = result; for (; i < oldDtrChars.length; ++i) { mDtrChars[i+1] = oldDtrChars[i]; mDtrNodes[i+1] = oldDtrNodes[i]; } return result; } void addEntry(DictionaryEntry entry) { DictionaryEntry[] oldEntries = mEntries; for (int i = 0; i < oldEntries.length; ++i) if (oldEntries[i].equals(entry)) return; mEntries = new DictionaryEntry[oldEntries.length+1]; mEntries[0] = entry; System.arraycopy(oldEntries,0,mEntries,1,oldEntries.length); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?