الطبقة الأساسية من Treeset هي مفاتيح Treemap () ، ويتم تنفيذ Treemap على أساس الأشجار الحمراء والأسود. الأشجار الحمراء والأسود عبارة عن شجرة بحث ثنائية متوازنة ، والتي يمكن أن تضمن أن الفرق بين الارتفاع بين الأشجار اليسرى واليمنى من أي عقدة لن يتجاوز ضعف الشجرة الأقصر.
يتم فرز Treemap بواسطة المفتاح ، وبالتالي يتم فرز العناصر في Treeset. من الواضح ، يجب استدعاء طريقة المقارنة () عند إدراج العنصر في Treeset ، لذلك يجب أن تنفذ العناصر الموجودة في Treeset الواجهة المماثلة. Treeset كمجموعة ، لا تسمح تظهر عناصر مكررة. تستخدم Treeset Compareto () للحكم على العناصر المكررة ، وليس متساوًا () ، راجع الكود التالي.
استيراد java.util.treeset ؛ استيراد org.junit.test ؛ فئة عامة testTresteet {class {class combine أدوات قابلة للمقارنة <combine> {private int p1 ؛ private int p2 ؛ public combine (int p1 ، int p2) {this.p1 = p1 ؛ this.p2 = p2 ؛ يساوي (كائن obj) {system.out.print ("سواء كان متساويًا" + this + "و" + obj) ؛ boolean rect = false ؛ if (abj extrealof combine) {system.out.println ("arai aluad" + this + " other.getp2 ()) ؛} system.out.println (":" + rect) ؛ return rect ؛}@override public int compareto (ogneen o) {system.out.print ("" قارن " + this +" و " + o) ؛ // فقط p1if (this.p1 <o.p1) > O.P1) {system.out.println ("، return 1") ؛ return 1 ؛} else {system.out.println ("، return 0") ؛ return 0 ؛}}@override public string toString () {return "(" + p1 + "،" + p2 + ") ؛ {this.p1 = p1 ؛} public int getp2 () {return p2 ؛} public void setp2 (int p2) {this.p2 = p2 ؛}}@test public void test () 2) ؛ Treeset <combine> set = new Treeset <combine> () ؛ set.add (c1) ؛ set.add (c2) ؛ set.add (c3) ؛ set.add (c4) ؛ بينما (! set.isempty ()) {// إخراج العناصر في Treeset من أجل الجمع بين Combine = set.pollfirst () ؛ system.out.println (combine.getp1 () + "/t" + combine.getp2 ()) ؛}}}الإخراج:
قارن (1،2) و (1،2) ، إرجاع 0
قارن (1،2) و (1،2) ، إرجاع 0
قارن (1،3) و (1،2) ، إرجاع 0
قارن (5،2) و (1،2) ، إرجاع 1
1 2
5 2
نرى أنه بغض النظر عما إذا كانت المقارنة تُرجع متساوية أم لا ، فإن طريقة متساوية () لا تسمى.
لخص
ما سبق هو كل شيء عن تحليل العناصر المتكررة في Treeset وأمثلة رمز. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!