RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie to drzewo trie, w którym każdy Pattern. Dlatego pełny List<Pattern>, a nie List<String>, jak w standardowym drzewie trie. Pamiętaj, że metoda retrieve(String...) będzie dopasowywana punktowo do Pattern, a nie sprawdzana pod kątem równości punktowej, jak w przypadku standardowego drzewa trie. Z tego powodu może działać słabo w przypadku dużych zbiorów danych.
W Pattern można też użyć wpisu null jako symbolu wieloznacznego. Jeśli napotkasz znak null, wszystkie kolejne wpisy w sekwencji zostaną zignorowane.
Gdy kod pobierania napotka znak null Pattern, najpierw poczeka, aby sprawdzić, czy do sekwencji pasuje bardziej szczegółowy wpis. Jeśli tak się stanie, bardziej szczegółowy wpis zostanie przetworzony, nawet jeśli później nie będzie pasować.
Jeśli nie ma bardziej szczegółowego dopasowania, dopasowanie z wieloznacznym symbolem doda wszystkie pozostałe Strings
do listy przechwyceń (jeśli jest włączona) i zwróci wartość powiązaną z wieloznacznym symbolem.
Krótki przykład działania funkcji symbolu wieloznacznego:
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, String... regexen)
Ta metoda pomocnicza przyjmuje listę wyrażeń regularnych jako |
V
|
put(V value, Pattern... patterns)
Dodawanie wpisu do drzewa trie. |
V
|
retrieve(String... strings)
Pobierz wartość z drzewa trie, dopasowując podaną sekwencję |
V
|
retrieve(List<List<String>> captures, String... strings)
Pobierz wartość z drzewa trie, dopasowując podaną sekwencję |
String
|
toString()
|
Konstruktory publiczne
RegexTrie
public RegexTrie ()
Metody publiczne
wyczyść
public void clear ()
put
public V put (V value,
String... regexen)Ta metoda pomocnicza przyjmuje listę wyrażeń regularnych jako Strings i kompiluje je na bieżąco przed dodaniem kolejnych Patterns do drzewa trie.
| Parametry | |
|---|---|
value |
V: wartość do ustawienia. |
regexen |
String: sekwencja wyrażeń regularnych (jako String), które muszą być dopasowane sekwencyjnie, aby pobrać powiązany value. Każdy ciąg znaków zostanie skompilowany jako Pattern przed wywołaniem put(Object,Pattern...). |
| Zwraca | |
|---|---|
V |
|
put
public V put (V value,
Pattern... patterns)Dodawanie wpisu do drzewa trie.
| Parametry | |
|---|---|
value |
V: wartość do ustawienia. |
patterns |
Pattern: sekwencja znaków Pattern, które muszą być dopasowane sekwencyjnie, aby pobrać powiązany znak value. |
| Zwraca | |
|---|---|
V |
|
odnajdź
public V retrieve (String... strings)
Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie.
| Parametry | |
|---|---|
strings |
String: sekwencja String do dopasowania |
| Zwraca | |
|---|---|
V |
Powiązana wartość lub null, jeśli nie znaleziono żadnej wartości. |
odnajdź
public V retrieve (List<List<String>> captures,
String... strings)Pobierz wartość z drzewa trie, dopasowując podaną sekwencję String do sekwencji Pattern przechowywanej w drzewie trie. Ta wersja metody zwraca też List grup przechwytywania dla każdego dopasowanego Pattern.
Każdy wpis na liście zewnętrznej odpowiada jednemu poziomowi w drzewie trie.Pattern
Dla każdego poziomu będzie przechowywana lista grup przechwytywania. Jeśli na danym poziomie nie było żadnych przechwyceń, zostanie zapisana pusta lista.
Pamiętaj, że captures zostanie List.clear() przed rozpoczęciem pobierania.
Jeśli pobieranie nie powiedzie się po częściowej sekwencji dopasowań, captures nadal będzie odzwierciedlać grupy przechwytywania z częściowego dopasowania.
| Parametry | |
|---|---|
captures |
List: List<List<String>>, przez który będą zwracane grupy przechwytywania. |
strings |
String: sekwencja String do dopasowania |
| Zwraca | |
|---|---|
V |
Powiązana wartość lub null, jeśli nie znaleziono żadnej wartości. |
toString
public String toString ()
| Zwraca | |
|---|---|
String |
|