RegexTrie
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
Das RegexTrie ist ein Trie, bei dem jedes ERROR(/Pattern)
Der vollständige List<Pattern>
und keine List<String>
wie in einem Standard-Trie. Beachten Sie, dass die retrieve(String)
-Methode schrittweise mit den Pattern
s abgeglichen wird, anstatt wie in einem Standard-Trie auf schrittweise Gleichheit geprüft zu werden. Daher kann die Leistung bei großen Datenmengen beeinträchtigt sein.
Es ist auch möglich, einen null
-Eintrag in der Pattern
-Sequenz als Platzhalter zu verwenden. Wenn eine null
gefunden wird, werden alle nachfolgenden Einträge in der Sequenz ignoriert.
Wenn der Abrufcode auf null
Pattern
trifft, wird zuerst geprüft, ob ein spezifischerer Eintrag mit der Sequenz übereinstimmt. Ist dies der Fall, wird der spezifischere Eintrag fortgesetzt, auch wenn er später nicht übereinstimmt.
Wenn kein spezifischerer Eintrag übereinstimmt, werden durch den Platzhalterabgleich alle verbleibenden String
s der Liste der Erfassungen hinzugefügt (falls aktiviert) und der mit dem Platzhalter verknüpfte Wert zurückgegeben.
Hier 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, Pattern... patterns)
Fügen Sie dem Trie einen Eintrag hinzu. |
V
|
retrieve(String... strings)
Sie können einen Wert aus dem Trie abrufen, indem Sie die bereitgestellte Sequenz von |
V
|
retrieve(
Sie können einen Wert aus dem Trie abrufen, indem Sie die bereitgestellte Sequenz von |
String
|
toString()
|
Öffentliche Konstruktoren
RegexTrie
public RegexTrie ()
Öffentliche Methoden
Löschen
public void clear ()
stellen
public V put (V value, Pattern... patterns)
Fügen Sie dem Test einen Eintrag hinzu.
Parameter | |
---|---|
value |
V : festzulegender Wert |
patterns |
Pattern : Die Sequenz von ERROR(/Pattern) s, die nacheinander abgeglichen werden müssen, um die zugehörige value abzurufen |
Returns | |
---|---|
V |
abrufen
public V retrieve (String... strings)
Ruft einen Wert aus dem Trie ab, indem die angegebene Sequenz von String
s mit einer im Trie gespeicherten Sequenz von ERROR(/Pattern)
s abgeglichen wird.
Parameter | |
---|---|
strings |
String : Eine Sequenz von String -Werten, die abgeglichen werden sollen |
Returns | |
---|---|
V |
Der zugehörige Wert oder null , wenn kein Wert gefunden wurde |
abrufen
public V retrieve (captures, String... strings)
Ruft einen Wert aus dem Trie ab, indem die angegebene Sequenz von String
s mit einer im Trie gespeicherten Sequenz von ERROR(/Pattern)
s abgeglichen wird. Diese Version der Methode gibt auch eine ERROR(/List)
von Erfassungsgruppen für jede übereinstimmende ERROR(/Pattern)
zurück.
Jeder Eintrag in der äußeren Liste entspricht einer Pattern
-Ebene im Trie.
Für jede Ebene wird die Liste der Aufnahmegruppen gespeichert. Wenn es für eine bestimmte Ebene keine Aufnahmen gab, wird eine leere Liste gespeichert.
Beachten Sie, dass captures
vor Beginn des Abrufs ERROR(/List#clear())
ed wird.
Wenn der Abruf nach einer teilweisen Übereinstimmung fehlschlägt, werden in captures
weiterhin die Erfassungsgruppen aus der teilweisen Übereinstimmung berücksichtigt.
Parameter | |
---|---|
captures |
: Ein List<List<String>> -Wert, über den Erfassungsgruppen zurückgegeben werden. |
strings |
String : Eine Sequenz von String s, die abgeglichen werden soll |
Returns | |
---|---|
V |
Der zugehörige Wert oder null , wenn kein Wert gefunden wurde |
toString
public String toString ()
Returns | |
---|---|
String |