RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie è un trie in cui ogni segmento Pattern. Pertanto, la chiave List<Pattern> anziché un List<String> come in un trie standard. Tieni presente che il
retrieve(String...) metodo verrà confrontato punto per punto con i Patterns,
anziché verificare l'uguaglianza punto per punto come in un trie standard. Per questo motivo, potrebbe
avere prestazioni scarse per set di dati di grandi dimensioni.
Puoi anche utilizzare una voce null nella sequenza Pattern come carattere jolly. Se
viene rilevato un valore null, tutte le voci successive nella sequenza verranno ignorate.
Quando il codice di recupero rileva un null Pattern, attende prima di verificare se una
voce più specifica corrisponde alla sequenza. In caso affermativo, la voce più specifica procederà,
anche se successivamente non corrisponde.
Se non corrisponde alcuna voce più specifica, la corrispondenza con il carattere jolly aggiungerà tutti i Strings
rimanenti all'elenco di acquisizioni (se abilitato) e restituirà il valore associato al carattere jolly.
Un breve esempio della funzionalità del carattere jolly:
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 [[], []]
Riepilogo
Costruttori pubblici | |
|---|---|
RegexTrie()
|
|
Metodi pubblici | |
|---|---|
void
|
clear()
|
V
|
put(V value, String... regexen)
Questo metodo helper accetta un elenco di espressioni regolari come |
V
|
put(V value, Pattern... patterns)
Aggiungi una voce al trie. |
V
|
retrieve(String... strings)
Recupera un valore dal trie, abbinando la sequenza di |
V
|
retrieve(List<List<String>> captures, String... strings)
Recupera un valore dal trie, abbinando la sequenza di |
String
|
toString()
|
Costruttori pubblici
RegexTrie
public RegexTrie ()
Metodi pubblici
clear
public void clear ()
put
public V put (V value,
String... regexen)Questo metodo helper accetta un elenco di espressioni regolari come String e le compila
al volo prima di aggiungere i Pattern successivi al trie
| Parametri | |
|---|---|
value |
V: il valore da impostare |
regexen |
String: la sequenza di espressioni regolari (come Strings) che deve essere
abbinata in sequenza per recuperare il value associato. Ogni stringa verrà
compilata come Pattern prima di richiamare put(Object,Pattern...). |
| Resi | |
|---|---|
V |
|
put
public V put (V value,
Pattern... patterns)Aggiungi una voce al trie.
| Parametri | |
|---|---|
value |
V: il valore da impostare |
patterns |
Pattern: la sequenza di Pattern che deve essere abbinata in sequenza per
recuperare il value associato |
| Resi | |
|---|---|
V |
|
retrieve
public V retrieve (String... strings)
Recupera un valore dal trie, abbinando la sequenza di String fornita a una
sequenza di Pattern memorizzata nel trie.
| Parametri | |
|---|---|
strings |
String: una sequenza di String da abbinare |
| Resi | |
|---|---|
V |
Il valore associato o null se non è stato trovato alcun valore |
retrieve
public V retrieve (List<List<String>> captures,
String... strings)Recupera un valore dal trie, abbinando la sequenza di String fornita a una
sequenza di Pattern memorizzata nel trie. Questa versione del metodo restituisce anche
un List di gruppi di acquisizione per ogni Pattern che è stato abbinato.
Ogni voce nell'elenco esterno corrisponde a un livello di Pattern nel trie.
Per ogni livello, verrà memorizzato l'elenco dei gruppi di acquisizione. Se non sono state effettuate acquisizioni
per un determinato livello, verrà memorizzato un elenco vuoto.
Tieni presente che captures verrà List.clear() prima dell'inizio del recupero.
Inoltre, se il recupero non riesce dopo una sequenza parziale di corrispondenze, captures rifletterà
comunque i gruppi di acquisizione della corrispondenza parziale.
| Parametri | |
|---|---|
captures |
List: un List<List<String>> tramite il quale verranno restituiti i gruppi di acquisizione. |
strings |
String: una sequenza di String da abbinare |
| Resi | |
|---|---|
V |
Il valore associato o null se non è stato trovato alcun valore |
toString
public String toString ()
| Resi | |
|---|---|
String |
|