RegexTrie
public
class
RegexTrie
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.util.RegexTrie<V> |
Der RegexTrie ist ein Trie, bei dem jedes Pattern ist. Der List<Pattern> und kein List<String> 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 |
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 |
V
|
retrieve(List<List<String>> captures, String... strings)
Ruft einen Wert aus dem Trie ab, indem die bereitgestellte Sequenz von |
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 |
|