RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie は、キーの各Pattern であるトライです。したがって、完全なList<String> ではなく List<Pattern> です。retrieve(String...) メソッドは、標準のトライ木のようにポイントワイズの等価性をチェックするのではなく、Pattern とポイントワイズで照合されることに注意してください。そのため、大規模なデータセットではパフォーマンスが低下する可能性があります。
Pattern シーケンスで null エントリをワイルドカードとして使用することもできます。null が検出されると、シーケンス内の後続のエントリはすべて無視されます。取得コードが null Pattern を検出すると、まず、より具体的なエントリがシーケンスと一致するかどうかを確認します。一致するものがある場合、そのより具体的なエントリが処理されます。たとえ、その後一致しなかったとしても処理されます。
より具体的なエントリが一致しない場合、ワイルドカード照合により、残りの String がすべてキャプチャのリストに追加され(有効になっている場合)、ワイルドカードに関連付けられた値が返されます。
ワイルドカード機能の簡単な例を次に示します。
List<List<String>> captures = new LinkedList<List<String>>(); RegexTrie<Integer> trie = new RegexTrie<Integer>(); trie.put(2, "a", null); trie.put(4, "a", "b"); trie.retrieve(captures, "a", "c", "e"); // returns 2. captures is now [[], ["c"], ["e"]] trie.retrieve(captures, "a", "b"); // returns 4. captures is now [[], []] trie.retrieve(captures, "a", "b", "c"); // returns null. captures is now [[], []]
概要
パブリック コンストラクタ | |
|---|---|
RegexTrie()
|
|
パブリック メソッド | |
|---|---|
void
|
clear()
|
V
|
put(V value, String... regexen)
このヘルパー メソッドは、正規表現のリストを |
V
|
put(V value, Pattern... patterns)
トライにエントリを追加します。 |
V
|
retrieve(String... strings)
指定された |
V
|
retrieve(List<List<String>> captures, String... strings)
指定された |
String
|
toString()
|
パブリック コンストラクタ
RegexTrie
public RegexTrie ()
パブリック メソッド
消去
public void clear ()
put
public V put (V value,
String... regexen)このヘルパー メソッドは、正規表現のリストを String として受け取り、それらをオンザフライでコンパイルしてから、後続の Pattern をトライに追加します。
| パラメータ | |
|---|---|
value |
V: 設定する値 |
regexen |
String: 関連付けられた value を取得するために順番に照合する必要がある正規表現のシーケンス(String として)。各 String は、put(Object,Pattern...) を呼び出す前に Pattern としてコンパイルされます。 |
| 戻り値 | |
|---|---|
V |
|
put
public V put (V value,
Pattern... patterns)トライにエントリを追加します。
| パラメータ | |
|---|---|
value |
V: 設定する値 |
patterns |
Pattern: 関連する value を取得するために順次照合する必要がある Pattern のシーケンス |
| 戻り値 | |
|---|---|
V |
|
取得
public V retrieve (String... strings)
提供された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。
| パラメータ | |
|---|---|
strings |
String: 照合する String のシーケンス |
| 戻り値 | |
|---|---|
V |
関連付けられた値。値が見つからなかった場合は null |
取得
public V retrieve (List<List<String>> captures,
String... strings)提供された String のシーケンスをトライに保存されている Pattern のシーケンスと照合して、トライから値を取得します。このバージョンのメソッドは、一致した各 Pattern のキャプチャ グループの List も返します。
外側の List の各エントリは、トライの Pattern の 1 つのレベルに対応します。各レベルで、キャプチャ グループのリストが保存されます。特定のレベルのキャプチャがない場合は、空のリストが保存されます。
取得が開始される前に captures が List.clear() されることに注意してください。また、部分一致のシーケンスの後に取得が失敗した場合でも、captures には部分一致のキャプチャ グループが反映されます。
| パラメータ | |
|---|---|
captures |
List: キャプチャ グループが返される List<List<String>>。 |
strings |
String: 照合する String のシーケンス |
| 戻り値 | |
|---|---|
V |
関連付けられた値。値が見つからなかった場合は null |
toString
public String toString ()
| 戻り値 | |
|---|---|
String |
|