RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie<V> |
Der RegexTrie ist ein Versuch, bei dem jeder gelagert Segment des Schlüssels ist ein regulärer Ausdruck ERROR(/Pattern)
. Also das volle gelagert Schlüssel ist ein List<Pattern>
statt einer List<String>
wie bei einem Standardversuch. Beachten Sie, dass die Methode retrieve(String)
punktweise mit den Pattern
s abgeglichen wird und nicht wie bei einem Standardversuch auf punktweise Gleichheit überprüft wird. Aus diesem Grund kann es bei großen Datensätzen zu einer schlechten Leistung kommen.
Man kann auch einen
null
in der
Pattern
als Platzhalter verwenden. Wenn eine
null
auftritt, werden alle nachfolgenden Einträge in der Sequenz ignoriert. Wenn der Abrufcode auf ein
null
Pattern
trifft, wartet er zunächst, ob ein spezifischerer Eintrag mit der Sequenz übereinstimmt. Wenn dies der Fall ist, wird dieser spezifischere Eintrag fortgesetzt, auch wenn er später nicht mehr übereinstimmt.
Wenn kein spezifischerer Eintrag übereinstimmt, fügt der Wildcard-Abgleich alle verbleibenden
String
s zur Liste der Captures 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 Folge von String s mit einer im Trie gespeicherten Folge von ERROR(/Pattern) s abgleichen. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Folge von String s mit einer im Trie gespeicherten Folge von ERROR(/Pattern) s abgleichen. |
String | toString () |
Öffentliche Bauträger
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 zugehörigen value abzurufen |
abrufen
public V retrieve (String... strings)
Rufen Sie einen Wert aus dem Trie ab, indem Sie die bereitgestellte Folge von String
s mit einer im Trie gespeicherten Folge von ERROR(/Pattern)
s abgleichen.
Parameter |
---|
strings | String : Eine Folge von String s, die übereinstimmen sollen |
Kehrt zurück |
---|
V | Der zugehörige 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 Folge von String
s mit einer im Trie gespeicherten Folge von ERROR(/Pattern)
s abgleichen. Diese Version der Methode gibt außerdem einen ERROR(/List)
von Erfassungsgruppen für jeden übereinstimmenden ERROR(/Pattern)
zurück.
Jeder Eintrag in der äußeren Liste entspricht einer
Pattern
im Versuch. Für jede Ebene wird die Liste der Erfassungsgruppen gespeichert. Wenn für ein bestimmtes Level keine Aufnahmen gemacht wurden, 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 String s, die übereinstimmen sollen |
Kehrt zurück |
---|
V | Der zugehörige Wert oder null , wenn kein Wert gefunden wurde |
toString
public String toString ()