RegexTrie

public class RegexTrie
extends Object

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


Der RegexTrie ist ein Trie, bei dem jedes gespeicherte Segment des Schlüssels ein regulärer Ausdruck Pattern ist. Der gespeicherte Schlüssel ist also ein List&lt;Pattern&gt; und kein List&lt;String&gt; wie in einem Standard-Trie. Die retrieve(String...)-Methode wird punktweise mit den Patterns verglichen und nicht wie in einem Standard-Trie auf punktweise Gleichheit geprüft. Daher kann die Leistung bei großen Datasets schlecht sein.

Sie können auch einen null-Eintrag in der Pattern-Sequenz als Platzhalter verwenden. Wenn eine null gefunden wird, werden alle nachfolgenden Einträge in der Sequenz ignoriert. Wenn der Abrufcode auf ein null Pattern trifft, wird zuerst gewartet, um zu sehen, ob ein spezifischerer Eintrag mit der Sequenz übereinstimmt. Wenn dies der Fall ist, wird dieser spezifischere Eintrag verwendet, auch wenn er später nicht mehr übereinstimmt.

Wenn keine genauere Übereinstimmung gefunden wird, werden durch den Platzhalterabgleich alle verbleibenden Strings der Liste der erfassten Werte hinzugefügt (sofern aktiviert) und der mit dem Platzhalter verknüpfte Wert zurückgegeben.

Ein kurzes Beispiel für die Platzhalterfunktion:

 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 [[], []]
 

Zusammenfassung

Öffentliche Konstruktoren

RegexTrie()

Öffentliche Methoden

void clear()
V put(V value, String... regexen)

Diese Hilfsmethode verwendet eine Liste regulärer Ausdrücke als String und kompiliert sie im laufenden Betrieb, bevor die nachfolgenden Pattern dem Trie hinzugefügt werden.

V put(V value, Pattern... patterns)

Fügen Sie dem Trie einen Eintrag hinzu.

V retrieve(String... strings)

Ruft einen Wert aus dem Trie ab, indem die bereitgestellte Sequenz von Strings mit einer im Trie gespeicherten Sequenz von Patterns abgeglichen wird.

V retrieve(List<List<String>> captures, String... strings)

Ruft einen Wert aus dem Trie ab, indem die bereitgestellte Sequenz von Strings mit einer im Trie gespeicherten Sequenz von Patterns abgeglichen wird.

String toString()

Öffentliche Konstruktoren

RegexTrie

public RegexTrie ()

Öffentliche Methoden

Löschen

public void clear ()

put

public V put (V value, 
                String... regexen)

Diese Hilfsmethode verwendet eine Liste regulärer Ausdrücke als String und kompiliert sie im laufenden Betrieb, bevor die nachfolgenden Pattern dem Trie hinzugefügt werden.

Parameter
value V: Der festzulegende Wert

regexen String: Die Sequenz von regulären Ausdrücken (als Strings), die sequenziell abgeglichen werden müssen, um die zugehörige value abzurufen. Jeder String wird als Pattern kompiliert, bevor put(Object,Pattern...) aufgerufen wird.

Gibt Folgendes zurück:
V

put

public V put (V value, 
                Pattern... patterns)

Fügen Sie dem Trie einen Eintrag hinzu.

Parameter
value V: Der festzulegende Wert

patterns Pattern: Die Sequenz von Patterns, die sequenziell abgeglichen werden müssen, um die zugehörige value abzurufen.

Gibt Folgendes zurück:
V

abrufen

public V retrieve (String... strings)

Ruft einen Wert aus dem Trie ab, indem die bereitgestellte Sequenz von Strings mit einer im Trie gespeicherten Sequenz von Patterns abgeglichen wird.

Parameter
strings String: Eine Sequenz von Strings, die abgeglichen werden sollen

Gibt Folgendes zurück:
V Der zugehörige Wert oder null, wenn kein Wert gefunden wurde

abrufen

public V retrieve (List<List<String>> captures, 
                String... strings)

Ruft einen Wert aus dem Trie ab, indem die bereitgestellte Sequenz von Strings mit einer im Trie gespeicherten Sequenz von Patterns abgeglichen wird. Diese Version der Methode gibt auch ein List von Erfassungsgruppen für jedes übereinstimmende Pattern zurück.

Jeder Eintrag in der äußeren Liste entspricht einer Ebene von Pattern im Trie. Für jede Ebene wird die Liste der Erfassungsgruppen gespeichert. Wenn für eine bestimmte Ebene keine Aufnahmen vorhanden waren, wird eine leere Liste gespeichert.

captures wird vor dem Abrufen List.clear(). Wenn der Abruf nach einer teilweisen Abfolge von Übereinstimmungen fehlschlägt, spiegelt captures weiterhin die Erfassungsgruppen aus der teilweisen Übereinstimmung wider.

Parameter
captures List: Ein List<List<String>>, über den Erfassungsgruppen zurückgegeben werden.

strings String: Eine Sequenz von Strings, die abgeglichen werden sollen

Gibt Folgendes zurück:
V Der zugehörige Wert oder null, wenn kein Wert gefunden wurde

toString

public String toString ()

Gibt Folgendes zurück:
String