RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie<V> |
Der RegexTrie ist ein Versuch, bei dem each gelagert Segment des Schlüssels ist eine Regex ERROR(/Pattern)
. Also voll gelagert Schlüssel ist ein List<Pattern>
statt einer List<String>
wie in einem Standardtrie. Beachten Sie, dass die Methode retrieve(String)
punktweise mit den Pattern
abgeglichen wird, anstatt wie bei einem Standard-Trie auf punktweise Gleichheit geprüft zu werden. Aus diesem Grund kann es bei großen Datasets eine schlechte Leistung erbringen.
Man kann auch einen
null
Eintrag in der
Pattern
Sequenz verwenden, um als Platzhalter zu dienen. Wenn eine
null
angetroffen wird, werden alle nachfolgenden Einträge in der Sequenz ignoriert. Wenn der Abrufcode auf
Pattern
null
trifft, wartet er zunächst, ob ein spezifischerer Eintrag mit der Sequenz übereinstimmt. Wenn dies der Fall ist, wird dieser spezifischere Eintrag fortgesetzt, selbst wenn er später nicht übereinstimmt.
Wenn kein spezifischerer Eintrag übereinstimmt, fügt die Wildcard-Übereinstimmung alle verbleibenden
String
zur Liste der Erfassungen hinzu (falls aktiviert) und gibt den mit dem Wildcard verknüpften Wert zurück.
Ein kurzes Beispiel der Wildcard-Funktionalität:
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 Methoden |
---|
void | clear () |
V | put (V value, Pattern... patterns) Fügen Sie dem Versuch einen Eintrag hinzu. |
V | retrieve (String... strings) Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Sequenz von ERROR(/String) s mit einer Sequenz von ERROR(/Pattern) s abgleichen, die im Trie gespeichert sind. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Sequenz von ERROR(/String) s mit einer Sequenz von ERROR(/Pattern) s abgleichen, die im Trie gespeichert sind. |
String | toString () |
Öffentliche Konstrukteure
RegexTrie
public RegexTrie ()
Öffentliche Methoden
klar
public void clear ()
setzen
public V put (V value,
Pattern... patterns)
Fügen Sie dem Versuch einen Eintrag hinzu.
Parameter |
---|
value | V : Der einzustellende Wert |
patterns | Pattern : Die Folge von ERROR(/Pattern) s, die nacheinander abgeglichen werden müssen, um den zugeordneten value abzurufen |
abrufen
public V retrieve (String... strings)
Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Sequenz von ERROR(/String)
s mit einer Sequenz von ERROR(/Pattern)
s abgleichen, die im Trie gespeichert sind.
Parameter |
---|
strings | String : Eine Folge von ERROR(/String) s zum Abgleichen |
Kehrt zurück |
---|
V | Der zugeordnete Wert oder null , wenn kein Wert gefunden wurde |
abrufen
public V retrieve ( captures,
String... strings)
Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Sequenz von ERROR(/String)
s mit einer Sequenz von ERROR(/Pattern)
s abgleichen, die im Trie gespeichert sind. Diese Version der Methode gibt auch eine ERROR(/List)
von Erfassungsgruppen für jeden gefundenen ERROR(/Pattern)
zurück.
Jeder Eintrag in der äußeren Liste entspricht einer
Pattern
im Trie. Für jede Ebene wird die Liste der Erfassungsgruppen gespeichert. Wenn es für eine bestimmte Ebene keine Aufnahmen gab, wird eine leere Liste gespeichert.
Beachten Sie, dass
captures
ERROR(/List#clear())
werden, bevor der Abruf beginnt. Auch wenn der Abruf nach einer Teilsequenz von Übereinstimmungen fehlschlägt, spiegeln
captures
weiterhin die Erfassungsgruppen aus der Teilübereinstimmung wider.
Parameter |
---|
captures | : Eine List<List<String>> über die Erfassungsgruppen zurückgegeben werden. |
strings | String : Eine Folge von ERROR(/String) s zum Abgleichen |
Kehrt zurück |
---|
V | Der zugeordnete Wert oder null , wenn kein Wert gefunden wurde |
toString
public String toString ()