RegexTrie
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie to drzewo Trie, 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 trie. Z tego powodu może ona działać nieefektywnie w przypadku dużych zbiorów danych.
Można też użyć wpisu null
w sekwencji Pattern
jako symbolu wieloznacznego. 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 ma dopasowania do bardziej szczegółowego wpisu, dopasowanie z użyciem symbolu zastępczego spowoduje dodanie wszystkich pozostałych wartości String
do listy przechwyconych wartości (jeśli jest włączona) i zwróci wartość powiązaną z tym symbolem zastępczym.
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 3-wartościowego. |
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 do powiązanych wartości value
|
Zwroty | |
---|---|
V |
odnajdź
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 znaków String do dopasowania |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono żadnej wartości
|
odnajdź
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 przechwytywania. Jeśli na danym poziomie nie było żadnych przechwyceń, zostanie zapisana pusta lista.
Pamiętaj, że przed rozpoczęciem pobierania captures
zostanie ERROR(/List#clear())
.
Jeśli wyszukiwanie nie powiedzie się po częściowej sekwencji dopasowań, captures
będzie nadal odzwierciedlać grupy przechwytywania z dopasowania częściowego.
Parametry | |
---|---|
captures |
: List<List<String>> , przez który zwracane są grupy przechwytywania. |
strings |
String : sekwencja znaków String do dopasowania |
Zwroty | |
---|---|
V |
Powiązana wartość lub null , jeśli nie znaleziono żadnej wartości
|
toString
public String toString ()
Zwroty | |
---|---|
String |