RegexTrie
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
Drzewo RegexTrie to drzewo, w którym każdy ERROR(/Pattern)
. Dlatego pełny List<Pattern>
, a nie List<String>
, jak w standardowym drzewie 3-wartościowym. Pamiętaj, że metoda retrieve(String)
będzie dopasowywana punktowo do Pattern
, a nie sprawdzana pod kątem równości punktowej jak w standardowym drzewie Trie. Z tego powodu może ona działać nieefektywnie w przypadku dużych zbiorów danych.
Jako symbolu wieloznacznego można też użyć wpisu null
w sekwencji Pattern
. Jeśli napotkasz null
, wszystkie kolejne wpisy w sekwencji zostaną zignorowane.
Gdy kod odzyskiwania napotka element null
Pattern
, najpierw sprawdzi, czy bardziej szczegółowy wpis pasuje do sekwencji. Jeśli tak, zostanie użyty bardziej szczegółowy wpis, nawet jeśli nie będzie on pasować do docelowego.
Jeśli nie pasuje bardziej konkretny wpis, dopasowanie z symbolem wieloznacznym spowoduje dodanie wszystkich pozostałych elementów String
do listy zapisów (jeśli jest włączona) i zwrócenie wartości powiązanej z symbolem wieloznacznym.
Krótki przykład funkcji symboli wieloznacznych:
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 [[], []]
Podsumowanie
Konstruktory publiczne | |
---|---|
RegexTrie()
|
Metody publiczne | |
---|---|
void
|
clear()
|
V
|
put(V value, Pattern... patterns)
Dodaj wpis do drzewa Trie. |
V
|
retrieve(String... strings)
Pobierz wartość z trie, dopasowując podawaną sekwencję |
V
|
retrieve(
Pobierz wartość z trie, dopasowując podawaną sekwencję |
String
|
toString()
|
Konstruktory publiczne
RegexTrie
public RegexTrie ()
Metody publiczne
wyczyść
public void clear ()
Połącz
public V put (V value, Pattern... patterns)
Dodaj wpis do drzewa 3-wartościowego.
Parametry | |
---|---|
value |
V : wartość do ustawienia |
patterns |
Pattern : sekwencja wartości ERROR(/Pattern) , które muszą być po kolei dopasowywane, aby pobrać powiązany element value |
Zwroty | |
---|---|
V |
odzyskaj
public V retrieve (String... strings)
Pobierz wartość z trie, dopasowując podawaną sekwencję String
do sekwencji ERROR(/Pattern)
przechowywanej w trie.
Parametry | |
---|---|
strings |
String : sekwencja wartości String do dopasowania |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono żadnej wartości |
odzyskaj
public V retrieve (captures, String... strings)
Pobierz wartość z trie, dopasowując podawaną sekwencję String
do sekwencji ERROR(/Pattern)
przechowywanej w trie. Ta wersja metody zwraca również ERROR(/List)
grup przechwytywania dla każdego dopasowanego ERROR(/Pattern)
.
Każdy wpis na liście zewnętrznej odpowiada jednemu poziomowi Pattern
w trie.
Na każdym poziomie będzie przechowywana lista grup rejestracji. Jeśli na danym poziomie nie było żadnych przechwyceń, zostanie zapisana pusta lista.
Pamiętaj, że wartość captures
zostanie ERROR(/List#clear())
edytowana przed rozpoczęciem pobierania.
Ponadto jeśli pobieranie nie uda się po częściowej sekwencji dopasowań, captures
nadal będzie odzwierciedlać grupy przechwytywania z dopasowania częściowego.
Parametry | |
---|---|
captures |
: pole List<List<String>> , za pomocą którego będą zwracane grupy przechwytywania. |
strings |
String : sekwencja wartości String do dopasowania |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono wartości. |
toString
public String toString ()
Zwroty | |
---|---|
String |