RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie <V> |
El RegexTrie es un ensayo donde cada almacenado segmento de la clave es un ERROR(/Pattern)
expresión regular ERROR(/Pattern)
. Por lo tanto, el almacenado La clave es una List<Pattern>
en lugar de List<String>
como en un trie estándar. Tenga en cuenta que el método retrieve(String)
se comparará puntualmente con el Pattern
s, en lugar de comprobar la igualdad puntual como en un trie estándar. Debido a esto, puede tener un rendimiento deficiente para grandes conjuntos de datos.
También se puede utilizar una entrada
null
en la secuencia del
Pattern
para que sirva como comodín. Si se encuentra un
null
, se ignorarán todas las entradas posteriores de la secuencia. Cuando el código de recuperación encuentra un
Pattern
null
, primero esperará para ver si una entrada más específica coincide con la secuencia. Si lo hace, continuará con esa entrada más específica, incluso si posteriormente no coincide.
Si no coincide ninguna entrada más específica, la coincidencia de comodines agregará todas las
String
restantes a la lista de capturas (si están habilitadas) y devolverá el valor asociado con el comodín.
Una pequeña muestra de la funcionalidad comodín:
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 [[], []]
Resumen
Métodos públicos |
---|
void | clear () |
V | put (V value, Pattern... patterns) Agrega una entrada al trie. |
V | retrieve (String... strings) Obtenga un valor del trie, haciendo coincidir la secuencia proporcionada deString s con una secuencia de ERROR(/Pattern) s almacenada en el trie. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Obtenga un valor del trie, haciendo coincidir la secuencia proporcionada deString s con una secuencia de ERROR(/Pattern) s almacenada en el trie. |
String | toString () |
Constructores públicos
RegexTrie
public RegexTrie ()
Métodos públicos
claro
public void clear ()
poner
public V put (V value,
Pattern... patterns)
Agrega una entrada al trie.
Parámetros |
---|
value | V : el valor a establecer |
patterns | Pattern : la secuencia de ERROR(/Pattern) s que deben coincidir secuencialmente para recuperar el value asociado |
recuperar
public V retrieve (String... strings)
Obtenga un valor del trie, haciendo coincidir la secuencia proporcionada deString
s con una secuencia de ERROR(/Pattern)
s almacenada en el trie.
Parámetros |
---|
strings | String : una secuencia deString para coincidir |
Devoluciones |
---|
V | El valor asociado, o null si no se encontró ningún valor |
recuperar
public V retrieve ( captures,
String... strings)
Obtenga un valor del trie, haciendo coincidir la secuencia proporcionada deString
s con una secuencia de ERROR(/Pattern)
s almacenada en el trie. Esta versión del método también devuelve un ERROR(/List)
de grupos de captura para cada ERROR(/Pattern)
que coincide.
Cada entrada de la lista exterior corresponde a un nivel de
Pattern
en el ensayo. Para cada nivel, se almacenará la lista de grupos de captura. Si no hubo capturas para un nivel en particular, se almacenará una lista vacía.
Tenga en cuenta que las
captures
serán
ERROR(/List#clear())
ed antes de que comience la recuperación. Además, si la recuperación falla después de una secuencia parcial de coincidencias, las
captures
seguirán reflejando los grupos de captura de la coincidencia parcial.
Parámetros |
---|
captures | : Una List<List<String>> través de la cual se devolverán los grupos de captura. |
strings | String : una secuencia deString para coincidir |
Devoluciones |
---|
V | El valor asociado, o null si no se encontró ningún valor |
Encadenar
public String toString ()