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