كيفية فرز HashSet في جافا

لا يحتفظ HashSet بترتيب العناصر ، ولكن يمكنك تحويل HashSet وترتيب العناصر بترتيب تصاعدي بطريقتين: استخدام الطريقة Collections.sort() أو عن طريق نسخ العناصر إلى TreeSet.

1) فرز HashSet باستخدام Collections.sort()

الطريقة Collections.sort() فرز مجموعات الكائنات التي تنفذ الواجهة java.util.List. يجب نسخ عناصر HashSet إلى إحدى المجموعات: ArrayList أو LinkedList أو Vector.  سنستخدم فئة ArrayList ، وهي الأبسط. < / سبان>  بعد ذلك ، نسمي الطريقة Collections.sort() على ArrayList.

import java.util.ArrayList; 
import java.util.Collections;
import java.util.HashSet;
import java.util.List;

فئة عامة TriHashSet {

الفراغ العام الثابت الرئيسي (سلسلة [] args) {
// إنشاء مجموعة تجزئة
HashSet< سلسلة> hset = HashSet جديد< سلسلة> ();

//add elements
hset.add("a2");
hset.add("a3");
hset.add("b1");
hset.add("b3");
hset.add("a1");
hset.add("b2");

System.out.println ("قبل الفرز:");
ل (سلسلة s: hset)
System.out.println (s) ؛

//نسخ عناصر HashSet إلى ArrayList
List< سلسلة> قائمة = قائمة صفيف جديدة< سلسلة> (هست) ؛
Collections.sort (قائمة) ؛

System.out.println ("بعد الفرز:") ؛
ل (سلسلة s: hset)
System.out.println (s) ؛
} < br / >}
< / string >< / string >< / string >< / pre>< / div>
الإخراج:

< pre class = "prettyprint lang-java" > قبل الفرز:
b1
a1
b3
b2
a2
a3
بعد الفرز:
b1
a1
b3
b2
a2
a3
< / pre>< / div>

1) فرز HashSet باستخدام TreeSet< / h2>< / div>
استخدام TreeSet بسيط للغاية. ما عليك سوى إنشاء مثيل من TreeSet باستخدام HashSet.

import java.util.HashSet كوسيطة; 
import java.util.TreeSet;

الطبقة العامة TriHashSetTreeMap {

الفراغ الثابت العام الرئيسي (سلسلة [] args) {
// إنشاء مجموعة تجزئة
HashSet<عدد صحيح> hset = HashSet() جديد

//add elements
hset.add(5);
hset.add(16);
hset.add(8);
hset.add(22);
hset.add(14);
hset.add(11);

System.out.println("قبل الفرز: "+hset);
for(int n: hset)
System.out.println(n);

//copy عناصر HashSet إلى ArrayList
TreeSet treeSet = TreeSet جديد< > (هست) ؛

System.out.println("بعد الفرز: "+treeset);
for(int n : treeet)
System.out.println(n);
}
}
< / عدد صحيح >< / عدد صحيح >< / عدد صحيح >< / قبل > الإخراج: < / div>

< pre class = "prettyprint lang-java" >قبل الفرز: [16 ، 5 ، 22 ، 8 ، 11 ، 14]
16
5
22
8
11
14
After IR: [5 ، 8 ، 11 ، 14 ، 16 ، 22]
5
8
11
14
16
22< / pre>< / div>