RegexTrie
public class RegexTrie
extends Object
java.lang.Объект |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie — это дерево, в котором каждый хранится сегмент ключа представляет собой регулярное выражение ERROR(/Pattern)
. Таким образом, полный хранится key представляет собой List<Pattern>
а не List<String>
как в стандартной попытке. Обратите внимание, что метод retrieve(String)
будет точечно сопоставляться с Pattern
s, а не проверяться на поточечное равенство, как в стандартном дереве. Из-за этого он может плохо работать с большими наборами данных.
Можно также использовать
null
запись в последовательности
Pattern
в качестве подстановочного знака. Если встречается
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 [[], []]
Краткое содержание
Публичные методы |
---|
void | clear () |
V | put (V value, Pattern... patterns) Добавьте запись в файл trie. |
V | retrieve (String... strings) Извлеките значение из дерева, сопоставив предоставленную последовательность ERROR(/String) с последовательностью ERROR(/Pattern) , хранящейся в дереве. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Извлеките значение из дерева, сопоставив предоставленную последовательность ERROR(/String) с последовательностью ERROR(/Pattern) , хранящейся в дереве. |
String | toString () |
Публичные конструкторы
RegexTrie
public RegexTrie ()
Публичные методы
прозрачный
public void clear ()
помещать
public V put (V value,
Pattern... patterns)
Добавьте запись в файл trie.
Параметры |
---|
value | V : Значение для установки |
patterns | Pattern : последовательность ERROR(/Pattern) , которая должна быть последовательно сопоставлена для получения связанного value . |
забрать
public V retrieve (String... strings)
Извлеките значение из дерева, сопоставив предоставленную последовательность ERROR(/String)
с последовательностью ERROR(/Pattern)
, хранящейся в дереве.
Параметры |
---|
strings | String : последовательность ERROR(/String) для соответствия |
Возвращает |
---|
V | Связанное значение или null , если значение не найдено |
забрать
public V retrieve ( captures,
String... strings)
Извлеките значение из дерева, сопоставив предоставленную последовательность ERROR(/String)
с последовательностью ERROR(/Pattern)
, хранящейся в дереве. Эта версия метода также возвращает ERROR(/List)
групп захвата для каждой ERROR(/Pattern)
, которая совпала.
Каждая запись во внешнем списке соответствует одному уровню
Pattern
в дереве. Для каждого уровня будет храниться список групп захвата. Если для определенного уровня не было захватов, будет сохранен пустой список.
Обратите внимание, что
captures
будут
ERROR(/List#clear())
до того, как начнется извлечение. Кроме того, если получение не удается после частичной последовательности совпадений,
captures
по-прежнему будут отражать группы захвата из частичного совпадения.
Параметры |
---|
captures | : List<List<String>> через который будут возвращены группы захвата. |
strings | String : последовательность ERROR(/String) для соответствия |
Возвращает |
---|
V | Связанное значение или null , если значение не найдено |
нанизывать
public String toString ()