JavaRush /Java Blog /Random-TK /Java-da nädip tertipleşdirmeli
eGarmin
Dereje

Java-da nädip tertipleşdirmeli

Toparda çap edildi
Köp açyk Java taslamalarynyň deslapky koduny seljerip, döredijileriň köpüsiniň tertipleşdirmegi diňe iki dürli usulda amala aşyrýandygyny gördüm. sort()Olaryň biri synp usulynyň ulanylmagyna Collectionsýa Arrays-da beýlekisi TreeMapwe TreeSet. Java-da nädip dogry tertipleşdirmeli - 1

Sort () usulyny ulanmak

Kolleksiýany tertiplemek zerur bolsa, ulanyň 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());
	}
});
Bir massiw tertiplemek zerur bolsa, ulanyň 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()Collectionygyndy ýa-da massiw eýýäm bahalar bilen doldurylanda bu usul örän amatlydyr.

Öz-özüňi tertipleşdirýän maglumat gurluşlaryny ulanmak

ListSanawy ( ) tertiplemek ýa-da ( Set) düzmek zerur bolsa , TreeSetsortlaşdyryş gurluşyny ulanyň.
// 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);
MapSözlük ( ) tertiplemek zerur bolsa , TreeMapsortlaşdyryş gurluşyny ulanyň. TreeMapdüwmesi boýunça tertiplenýär 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);
Collectionygyndydaky elementler üçin köp sanly gözleg geçirmeli bolýan ýagdaýlarda ýokardaky çemeleşme örän peýdalydyr. O(log(n))Öz-özüňi tertipleşdirýän maglumat gurluşlaryndan has gowy netijelilik bar O(n). Bu, ýygyndydaky maglumatlaryň mukdary iki esse artanda gözleg wagtynyň iki esse köpelmeýändigini, ýöne hemişelik mukdarda köpelýändigini aňladýar .

Meseläni tertiplemek üçin erbet çemeleşme

Programmistleriň sortlaşdyryş algoritmlerini özbaşdak beýan edýän mysallaryny tapyp bilersiňiz. Aşakda görkezilen sortlaşdyryş koduny gözden geçiriň (ýokarlanýan tertipde goşa massiw tertiplemek ). Bu kod diňe bir netijesiz bolman, eýsem okalmaýan hem. Şeýle mysallar köp.
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;
		}
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION