RegexTrie
public
class
RegexTrie
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.RegexTrie<V> |
RegexTrie هو بنية بحث ثنائية حيث يكون كل جزء ERROR(/Pattern)
. وبالتالي، يكون المفتاح List<Pattern>
بدلاً
من List<String>
كما هو الحال في شجرة البحث الثلاثية العادية. يُرجى العِلم أنّه
سيتم مطابقة طريقة retrieve(String)
نقطةً بنقطة مع Pattern
،
بدلاً من التحقّق من التساوي نقطةً بنقطة كما هو الحال في شجرة البحث الثلاثية العادية. ولهذا السبب، قد يؤدي
إلى أداء ضعيف مع مجموعات البيانات الكبيرة.
يمكن أيضًا استخدام إدخال null
في تسلسل Pattern
ليكون بمثابة حرف بدل. في حال
حدوث null
، سيتم تجاهل جميع الإدخالات اللاحقة في التسلسل.
عندما يصادف رمز الاسترجاع عنصر Pattern
null
، سينتظر أولاً لمعرفة ما إذا كان إدخال أكثر تحديدًا يطابق التسلسل. وفي حال توفّر إدخال واحد، سيتمّ استخدام هذا الإدخال الأكثر تحديدًا،
حتى إذا تعذّر تطابقه لاحقًا.
في حال عدم تطابق أي إدخال أكثر تحديدًا، ستضيف مطابقة حرف البدل جميع String
المتبقية
إلى قائمة الالتقاط (في حال تفعيلها) وتعرض القيمة المرتبطة بحرف البدل.
إليك عيّنة قصيرة من وظيفة أحرف البدل:
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, Pattern... patterns)
أضِف إدخالًا إلى البنية الثلاثية. |
V
|
retrieve(String... strings)
استرجاع قيمة من البنية الثلاثية، من خلال مطابقة التسلسل المقدَّم من |
V
|
retrieve(
استرجاع قيمة من البنية الثلاثية، من خلال مطابقة التسلسل المقدَّم من |
String
|
toString()
|
وظائف الإنشاء العامة
RegexTrie
public RegexTrie ()
الطرق العامة
محو
public void clear ()
وضع
public V put (V value, Pattern... patterns)
أضف إدخالاً إلى trie.
المعلمات | |
---|---|
value |
V : القيمة المطلوب ضبطها |
patterns |
Pattern : تسلسل ERROR(/Pattern) الذي يجب مطابقته بشكل تسلسلي لاسترداد value المرتبط |
المرتجعات | |
---|---|
V |
استرداد
public V retrieve (String... strings)
استرجاع قيمة من البنية الثلاثية، من خلال مطابقة التسلسل المقدَّم من String
مع
تسلسل من ERROR(/Pattern)
المخزّن في البنية الثلاثية
المعلمات | |
---|---|
strings |
String : تسلسل String s لمطابقته |
المرتجعات | |
---|---|
V |
القيمة المرتبطة، أو null في حال عدم العثور على أي قيمة |
استرداد
public V retrieve (captures, String... strings)
استرجاع قيمة من البنية الثلاثية، من خلال مطابقة التسلسل المقدَّم من String
مع
تسلسل من ERROR(/Pattern)
المخزّن في البنية الثلاثية يعرض هذا الإصدار من الطريقة أيضًا
ERROR(/List)
من مجموعات الالتقاط لكل ERROR(/Pattern)
تم مطابقته.
يتوافق كل إدخال في القائمة الخارجية مع مستوى واحد من Pattern
في شجرة البحث الثلاثية.
سيتم تخزين قائمة مجموعات الالتقاط لكل مستوى. إذا لم يتم تسجيل أيّ عمليات تسجيل
لمستوى معيّن، سيتم تخزين قائمة فارغة.
يُرجى العِلم أنّه سيتم ERROR(/List#clear())
captures
قبل بدء عملية الاسترداد.
بالإضافة إلى ذلك، إذا تعذّر الاسترداد بعد تسلسل جزئي من المطابقات، سيظلّ captures
يعرض مجموعات الالتقاط من المطابقة الجزئية.
المعلمات | |
---|---|
captures |
: عنصر List<List<String>> الذي سيتم من خلاله عرض مجموعات الالتقاط. |
strings |
String : تسلسل من String لمطابقته |
المرتجعات | |
---|---|
V |
القيمة المرتبطة، أو null إذا لم يتم العثور على أي قيمة |
toString
public String toString ()
المرتجعات | |
---|---|
String |