RegexTrie
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie è un trie in cui ogni segmento ERROR(/Pattern)
. Pertanto, la chiave List<Pattern>
anziché un List<String>
come in un trie standard. Tieni presente che il metodo retrieve(String)
verrà confrontato con i punti in base ai valori Pattern
, anziché essere controllata per l'uguaglianza puntuale come in un trie standard. Per questo motivo, potrebbe avere un rendimento scadente per set di dati di grandi dimensioni.
È possibile utilizzare anche una voce null
nella sequenza Pattern
come carattere jolly. Se viene rilevato un null
, tutte le voci successive nella sequenza verranno ignorate.
Quando il codice di recupero trova un null
Pattern
, attende prima di verificare se una voce più specifica corrisponde alla sequenza. Se ne trova una, verrà utilizzata la voce più specifica, anche se successivamente non viene trovata una corrispondenza.
Se non viene trovata una voce più specifica, la corrispondenza con caratteri jolly aggiungerà tutti i String
rimanenti
all'elenco delle 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
Costruttori pubblici | |
---|---|
RegexTrie()
|
Metodi pubblici | |
---|---|
void
|
clear()
|
V
|
put(V value, Pattern... patterns)
Aggiungi una voce al trie. |
V
|
retrieve(String... strings)
Recupera un valore dall'albero trie abbinando la sequenza di |
V
|
retrieve(
Recupera un valore dall'albero trie abbinando la sequenza di |
String
|
toString()
|
Costruttori pubblici
RegexTrie
public RegexTrie ()
Metodi pubblici
cancella
public void clear ()
passami
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) che deve essere associata in sequenza per recuperare il value associato |
Ritorni | |
---|---|
V |
recuperare
public V retrieve (String... strings)
Recupera un valore dall'albero trie abbinando la sequenza di String
fornita a una sequenza di String
memorizzata nell'albero trie.ERROR(/Pattern)
Parametri | |
---|---|
strings |
String : una sequenza di String da abbinare |
Ritorni | |
---|---|
V |
Il valore associato o null se non è stato trovato alcun valore |
recuperare
public V retrieve (captures, String... strings)
Recupera un valore dall'albero trie abbinando la sequenza di String
fornita a una sequenza di String
memorizzata nell'albero trie.ERROR(/Pattern)
Questa versione del metodo restituisce anche un ERROR(/List)
di gruppi di cattura per ogni ERROR(/Pattern)
a cui è stata trovata una corrispondenza.
Ogni voce nell'elenco esterno corrisponde a un livello di Pattern
nell'albero trie.
Per ogni livello, verrà memorizzato l'elenco dei gruppi di acquisizione. Se non sono state acquisite informazioni per un determinato livello, verrà memorizzato un elenco vuoto.
Tieni presente che captures
verrà ERROR(/List#clear())
prima dell'inizio del recupero.
Inoltre, se il recupero non va a buon fine dopo una sequenza parziale di corrispondenze, captures
rifletterà comunque i gruppi di acquisizione dalla corrispondenza parziale.
Parametri | |
---|---|
captures |
: un List<List<String>> tramite il quale verranno restituiti i gruppi di acquisizione. |
strings |
String : una sequenza di String da abbinare |
Ritorni | |
---|---|
V |
Il valore associato o null se non è stato trovato alcun valore |
toString
public String toString ()
Ritorni | |
---|---|
String |