RegexTrie

public class RegexTrie
extends Object

java.lang.Object
   ↳ com.android.tradefed.util.RegexTrie<V>


RegexTrie to drzewo Trie, w którym każdy zapisany segment klucza to wyrażenie regularne ERROR(/Pattern). Dlatego pełny zapisany klucz to List&lt;Pattern&gt;, a nie List&lt;String&gt;, 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ę String do sekwencji ERROR(/Pattern) przechowywanej w trie.

V retrieve( captures, String... strings)

Pobierz wartość z trie, dopasowując podawaną sekwencję String do sekwencji ERROR(/Pattern) przechowywanej w trie.

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