RegexTrie
public class RegexTrie
extends Object
java.lang.Object |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie là một trie trong đó mỗi lưu trữ đoạn của khóa là một regex ERROR(/Pattern)
. Như vậy, đầy đủ lưu trữ khóa là List<Pattern>
thay vì List<String>
như trong một lần thử tiêu chuẩn. Lưu ý rằng phương thức retrieve(String)
sẽ được đối sánh theo điểm với Pattern
s, thay vì được kiểm tra sự bằng nhau theo điểm như trong một bộ ba tiêu chuẩn. Do đó, nó có thể hoạt động kém đối với các tập dữ liệu lớn.
Người ta cũng có thể sử dụng mục nhập
null
trong chuỗi
Pattern
để dùng làm ký tự đại diện. Nếu gặp phải
null
, tất cả các mục tiếp theo trong chuỗi sẽ bị bỏ qua. Khi mã truy xuất gặp
Pattern
null
, trước tiên, mã sẽ chờ xem liệu mục nhập cụ thể hơn có khớp với chuỗi hay không. Nếu có, mục cụ thể hơn đó sẽ tiếp tục, ngay cả khi sau đó nó không khớp.
Nếu không có mục nhập nào cụ thể hơn phù hợp, thì đối sánh ký tự đại diện sẽ thêm tất cả
String
s còn lại vào danh sách chụp (nếu được bật) và trả về giá trị được liên kết với ký tự đại diện.
Một ví dụ ngắn về chức năng ký tự đại diện:
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 [[], []]
Bản tóm tắt
Phương thức công khai |
---|
void | clear () |
V | put (V value, Pattern... patterns) Thêm một mục vào trie. |
V | retrieve (String... strings) Tìm nạp một giá trị từ bộ ba, bằng cách so khớp chuỗi ERROR(/String) được cung cấp với một chuỗi ERROR(/Pattern) được lưu trữ trong bộ ba. |
V | retrieve ( captures, String... strings) retrieve ( captures, String... strings) Tìm nạp một giá trị từ bộ ba, bằng cách so khớp chuỗi ERROR(/String) được cung cấp với một chuỗi ERROR(/Pattern) được lưu trữ trong bộ ba. |
String | toString () |
nhà thầu công cộng
RegexTrie
public RegexTrie ()
Phương thức công khai
thông thoáng
public void clear ()
đặt
public V put (V value,
Pattern... patterns)
Thêm một mục vào trie.
Thông số |
---|
value | V : Giá trị cài đặt |
patterns | Pattern : Chuỗi ERROR(/Pattern) phải được so khớp tuần tự để truy xuất value được liên kết |
lấy lại
public V retrieve (String... strings)
Tìm nạp một giá trị từ bộ ba, bằng cách so khớp chuỗi ERROR(/String)
được cung cấp với một chuỗi ERROR(/Pattern)
được lưu trữ trong bộ ba.
trả lại |
---|
V | Giá trị được liên kết hoặc null nếu không tìm thấy giá trị nào |
lấy lại
public V retrieve ( captures,
String... strings)
Tìm nạp một giá trị từ bộ ba, bằng cách so khớp chuỗi ERROR(/String)
được cung cấp với một chuỗi ERROR(/Pattern)
được lưu trữ trong bộ ba. Phiên bản này của phương thức cũng trả về một ERROR(/List)
của các nhóm chụp cho mỗi ERROR(/Pattern)
đã được so khớp.
Mỗi mục trong Danh sách bên ngoài tương ứng với một cấp độ
Pattern
trong bộ ba. Đối với mỗi cấp độ, danh sách các nhóm chụp sẽ được lưu trữ. Nếu không có bản chụp nào cho một cấp độ cụ thể, một danh sách trống sẽ được lưu trữ.
Lưu ý rằng
captures
sẽ được chỉnh sửa
ERROR(/List#clear())
trước khi quá trình truy xuất bắt đầu. Ngoài ra, nếu quá trình truy xuất không thành công sau một phần chuỗi khớp, thì
captures
sẽ vẫn phản ánh các nhóm chụp từ khớp một phần.
Thông số |
---|
captures | : List<List<String>> mà qua đó các nhóm chụp sẽ được trả về. |
strings | String : Một chuỗi ERROR(/String) s để khớp |
trả lại |
---|
V | Giá trị được liên kết hoặc null nếu không tìm thấy giá trị nào |
toString
public String toString ()