JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ صحيح ترتيب ڪيئن ڪجي
eGarmin
سطح

جاوا ۾ صحيح ترتيب ڪيئن ڪجي

گروپ ۾ شايع ٿيل
ڪيترن ئي اوپن سورس جاوا پروجيڪٽس جي سورس ڪوڊ جو تجزيو ڪندي، مون ڏٺو ته اڪثر ڊولپرز ترتيب ڏيڻ کي صرف ٻن مختلف طريقن سان لاڳو ڪندا آهن. sort()انهن مان هڪ طبقن جي طريقي جي استعمال تي ٻڌل آهي Collectionsيا Arrays، ۽ ٻيو خود ترتيب ڏيڻ واري ڊيٽا جي جوڙجڪ جي استعمال تي ٻڌل آهي جهڙوڪ TreeMap۽ TreeSet. جاوا ۾ صحيح ترتيب ڪيئن ڪجي - 1

استعمال ڪندي ترتيب () طريقو

جيڪڏهن توهان کي مجموعو ترتيب ڏيڻ جي ضرورت آهي، پوء استعمال ڪريو Collections.sort().
// Collections.sort(…)
List<ObjectName> list = new ArrayList<ObjectName>();
Collections.sort(list, new Comparator<ObjectName>() {
	public int compare(ObjectName o1, ObjectName o2) {
		return o1.toString().compareTo(o2.toString());
	}
});
جيڪڏهن توهان کي هڪ صف ترتيب ڏيڻ جي ضرورت آهي، استعمال ڪريو Arrays.sort().
// Arrays.sort(…)
ObjectName[] arr = new ObjectName[10];
Arrays.sort(arr, new Comparator<ObjectName>() {
	public int compare(ObjectName o1, ObjectName o2) {
		return o1.toString().compareTo(o2.toString());
	}
});
اهو طريقو sort()تمام آسان آهي جڏهن گڏ ڪرڻ يا صف اڳ ۾ ئي قدرن سان ڀريل آهي.

خود ترتيب ڏيڻ واري ڊيٽا جي جوڙجڪ کي استعمال ڪندي

جيڪڏھن توھان کي ضرورت آھي ھڪڙي فهرست کي ترتيب ڏيو ( List) يا سيٽ ڪريو ( Set)، ھڪڙي TreeSetترتيب واري جوڙجڪ استعمال ڪريو.
// TreeSet
Set<ObjectName> sortedSet = new TreeSet<ObjectName>(new Comparator<ObjectName>() {
	public int compare(ObjectName o1, ObjectName o2) {
		return o1.toString().compareTo(o2.toString());
	}
});
sortedSet.addAll(unsortedSet);
جيڪڏهن توهان کي لغت ترتيب ڏيڻ جي ضرورت آهي ( MapTreeMapترتيب ڏيڻ واري جوڙجڪ استعمال ڪريو. TreeMapچاٻي جي ترتيب سان ترتيب ڏنل ( key).
// TreeMap – использующий String ключи и компаратор (Comparator) CASE_INSENSITIVE_ORDER,
// упорядочивающий строки (String) методом compareToIgnoreCase
Map<String, Integer> sortedMap = new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);
sortedMap.putAll(unsortedMap);
//TreeMap – общий случай, компаратор указывается вручную
Map<ObjectName, String> sortedMap = new TreeMap<ObjectName, String>(new Comparator<ObjectName>() {
	public int compare(ObjectName o1, ObjectName o2) {
		return o1.toString().compareTo(o2.toString());
	}
});
sortedMap.putAll(unsortedMap);
مٿين طريقي سان ڪيسن ۾ تمام ڪارائتو آهي جتي توهان کي مجموعي ۾ عناصر لاء وڏي تعداد ۾ ڳولا ڪرڻ جي ضرورت آهي. خود ترتيب ڏيڻ واري ڊيٽا جي جوڙجڪ ۾ هڪ ڪارڪردگي آهي O(log(n))جيڪا بهتر آهي O(n). هن جو مطلب اهو آهي ته جڏهن گڏ ڪيل ڊيٽا جي مقدار کي ٻيڻو ڪري ٿو، ڳولا جو وقت ٻيڻو نه ٿو، پر مسلسل مقدار سان وڌي ٿو .

مسئلي کي ترتيب ڏيڻ لاء خراب طريقو

توھان اڃا تائين مثال ڳولي سگھو ٿا جتي پروگرامر آزاد طور تي الگورتھم کي ترتيب ڏيڻ جي وضاحت ڪن ٿا. هيٺ ڏنل ترتيب ڏيڻ واري ڪوڊ تي غور ڪريو (اڀرندي آرڊر ۾ ڊبل صف کي ترتيب ڏيڻ ). هي ڪوڊ نه رڳو غير موثر آهي، پر اڻ پڙهيل پڻ. ۽ اهڙا ڪيترائي مثال آهن.
double t;
for (int i = 0; i < N; i++)
	for (int j = i + 1; j < N; j++)
		if (r[j] < r[i]) {
			t = r[i];
			r[i] = r[j];
			r[j] = t;
		}
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION