RegexTrie

public class RegexTrie
extends Object

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


RegexTrie คือไทรที่แต่ละเซ็กเมนต์ของคีย์ที่ จัดเก็บไว้เป็นนิพจน์ทั่วไป Pattern. ดังนั้น คีย์ที่ จัดเก็บไว้ทั้งหมด จึงเป็น List&lt;Pattern&gt; แทนที่จะเป็น List&lt;String&gt; เหมือนในไทรมาตรฐาน โปรดทราบว่าเมธอด retrieve(String...) จะจับคู่แบบทีละจุดกับ Patterns, แทนที่จะตรวจสอบความเท่ากันแบบทีละจุดเหมือนในไทรมาตรฐาน ด้วยเหตุนี้ เมธอดดังกล่าวจึงอาจ ทำงานได้ไม่ดีกับชุดข้อมูลขนาดใหญ่

นอกจากนี้ คุณยังใช้รายการ null ในลำดับ Pattern เพื่อทำหน้าที่เป็นไวลด์การ์ดได้ด้วย หากพบ null ระบบจะไม่สนใจรายการที่ตามมาทั้งหมดในลำดับ เมื่อโค้ดการดึงข้อมูลพบ null Pattern ระบบจะรอเพื่อดูว่ารายการที่เฉพาะเจาะจงกว่าตรงกับลำดับหรือไม่ หากตรง รายการที่เฉพาะเจาะจงกว่านั้นจะดำเนินการต่อ แม้ว่าภายหลังจะไม่ตรงก็ตาม

หากไม่มีรายการที่เฉพาะเจาะจงกว่าตรงกัน การจับคู่ไวลด์การ์ดจะเพิ่ม Strings ที่เหลือทั้งหมดลงในรายการการจับภาพ (หากเปิดใช้) และแสดงผลค่าที่เชื่อมโยงกับไวลด์การ์ด

ตัวอย่างสั้นๆ ของฟังก์ชันการทำงานของไวลด์การ์ด

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

สรุป

เครื่องมือสร้างสาธารณะ

RegexTrie()

เมธอดสาธารณะ

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

เมธอดตัวช่วยนี้จะใช้รายการนิพจน์ทั่วไปเป็น String และคอมไพล์รายการดังกล่าว แบบทันที ก่อนที่จะเพิ่ม Pattern ที่ตามมาลงในไทร

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

เพิ่มรายการลงในไทร

V retrieve(String... strings)

ดึงข้อมูลค่าจากไทรโดยการจับคู่ลำดับ String ที่ระบุกับลำดับ Pattern ที่จัดเก็บไว้ในไทร

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

ดึงข้อมูลค่าจากไทรโดยการจับคู่ลำดับ String ที่ระบุกับลำดับ Pattern ที่จัดเก็บไว้ในไทร

String toString()

เครื่องมือสร้างสาธารณะ

RegexTrie

public RegexTrie ()

เมธอดสาธารณะ

ล้าง

public void clear ()

put

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

เมธอดตัวช่วยนี้จะใช้รายการนิพจน์ทั่วไปเป็น String และคอมไพล์รายการดังกล่าว แบบทันที ก่อนที่จะเพิ่ม Pattern ที่ตามมาลงในไทร

พารามิเตอร์
value V: ค่าที่จะตั้ง

regexen String: ลำดับนิพจน์ทั่วไป (เป็น Strings) ที่ต้อง จับคู่ตามลำดับเพื่อดึงข้อมูล value ที่เชื่อมโยง ระบบจะคอมไพล์ `String` แต่ละรายการเป็น Pattern ก่อนที่จะเรียกใช้ put(Object,Pattern...)

การคืนสินค้า
V

put

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

เพิ่มรายการลงในไทร

พารามิเตอร์
value V: ค่าที่จะตั้ง

patterns Pattern: ลำดับ Pattern ที่ต้องจับคู่ตามลำดับเพื่อดึงข้อมูล value ที่เชื่อมโยง

การคืนสินค้า
V

ดึงข้อมูล

public V retrieve (String... strings)

ดึงข้อมูลค่าจากไทรโดยการจับคู่ลำดับ String ที่ระบุกับลำดับ Pattern ที่จัดเก็บไว้ในไทร

พารามิเตอร์
strings String: ลำดับ String ที่จะจับคู่

การคืนสินค้า
V ค่าที่เชื่อมโยง หรือ null หากไม่พบค่า

ดึงข้อมูล

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

ดึงข้อมูลค่าจากไทรโดยการจับคู่ลำดับ String ที่ระบุกับลำดับ Pattern ที่จัดเก็บไว้ในไทร เมธอดเวอร์ชันนี้จะแสดงผล List ของกลุ่มการจับภาพสำหรับ Pattern แต่ละรายการที่ตรงกันด้วย

แต่ละรายการใน List ด้านนอกจะสอดคล้องกับ Pattern 1 ระดับในไทร ระบบจะจัดเก็บรายการกลุ่มการจับภาพสำหรับแต่ละระดับ หากไม่มีการจับภาพ สำหรับระดับใดระดับหนึ่ง ระบบจะจัดเก็บรายการว่าง

โปรดทราบว่าระบบจะ List.clear() captures ก่อนที่จะเริ่มการดึงข้อมูล นอกจากนี้ หากการดึงข้อมูลล้มเหลวหลังจากลำดับการจับคู่บางส่วน captures จะ ยังคงแสดงกลุ่มการจับภาพจากการจับคู่บางส่วน

พารามิเตอร์
captures List: ที่จะแสดงผลกลุ่มการจับภาพList<List<String>>

strings String: ลำดับ String ที่จะจับคู่

การคืนสินค้า
V ค่าที่เชื่อมโยง หรือ null หากไม่พบค่า

toString

public String toString ()

การคืนสินค้า
String