RegexTrie
public class RegexTrie
extends Object
java.lang.Oggetto |
↳ | com.android.tradefed.util.RegexTrie<V> |
Il RegexTrie è un trie in cui ciascuno immagazzinato segmento della chiave è una regex ERROR(/Pattern)
. Così, il pieno immagazzinato è una chiave List<Pattern>
piuttosto che un List<String>
come in un trie standard. Si noti che il metodo retrieve(String)
verrà confrontato in modo puntuale rispetto a Pattern
s, anziché verificarne l'uguaglianza in modo puntuale come in un trie standard. Per questo motivo, potrebbe funzionare male per set di dati di grandi dimensioni.
Si può anche utilizzare una voce
null
nella sequenza
Pattern
per fungere da carattere jolly. Se viene rilevato un
null
, tutte le voci successive nella sequenza verranno ignorate. Quando il codice di recupero incontra un
null
Pattern
, attenderà prima di vedere se una voce più specifica corrisponde alla sequenza. Se uno lo fa, quella voce più specifica procederà, anche se successivamente non riesce a corrispondere.
Se nessuna voce più specifica corrisponde, la corrispondenza con caratteri jolly aggiungerà tutti i rimanenti
String
s all'elenco di acquisizioni (se abilitato) e restituirà il valore associato al carattere jolly.
Un breve esempio della funzionalità dei caratteri 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
Metodi pubblici |
---|
void | clear () |
V | put (V value, Pattern... patterns) Aggiungi una voce al trie. |
V | retrieve (String... strings) Recupera un valore dal trie, facendo corrispondere la sequenza fornita di ERROR(/String) s a una sequenza di ERROR(/Pattern) s memorizzata nel trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Recupera un valore dal trie, facendo corrispondere la sequenza fornita di ERROR(/String) s a una sequenza di ERROR(/Pattern) s memorizzata nel trie. |
String | toString () |
Costruttori pubblici
RegexTrie
public RegexTrie ()
Metodi pubblici
chiaro
public void clear ()
Mettere
public V put (V value,
Pattern... patterns)
Aggiungi una voce al trie.
Parametri |
---|
value | V : Il valore da impostare |
patterns | Pattern : la sequenza di ERROR(/Pattern) s che deve essere abbinata in sequenza per recuperare il value associato |
recuperare
public V retrieve (String... strings)
Recupera un valore dal trie, facendo corrispondere la sequenza fornita di ERROR(/String)
s a una sequenza di ERROR(/Pattern)
s memorizzata nel trie.
Parametri |
---|
strings | String : una sequenza di ERROR(/String) s da trovare |
ritorna |
---|
V | Il valore associato o null se non è stato trovato alcun valore |
recuperare
public V retrieve ( captures,
String... strings)
Recupera un valore dal trie, facendo corrispondere la sequenza fornita di ERROR(/String)
s a una sequenza di ERROR(/Pattern)
s memorizzata nel trie. Questa versione del metodo restituisce anche un ERROR(/List)
di gruppi Capture per ogni ERROR(/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 ci sono state catture per un particolare livello, verrà memorizzato un elenco vuoto.
Si noti che
captures
verranno eseguite in
ERROR(/List#clear())
prima dell'inizio del recupero. Inoltre, se il recupero non riesce dopo una sequenza parziale di corrispondenze,
captures
rifletteranno comunque i gruppi di acquisizione dalla corrispondenza parziale.
Parametri |
---|
captures | : Oggetto List<List<String>> attraverso il quale verranno restituiti i gruppi Capture. |
strings | String : una sequenza di ERROR(/String) s da trovare |
ritorna |
---|
V | Il valore associato o null se non è stato trovato alcun valore |
accordare
public String toString ()