JavaRush /Блоги Java /Random-TG /Чӣ тавр дуруст тартиб додан дар Java
eGarmin
Сатҳи

Чӣ тавр дуруст тартиб додан дар Java

Дар гурӯҳ нашр шудааст
Ҳангоми таҳлor рамзи сарчашмаи бисёр лоиҳаҳои Java-и кушода, ман фаҳмидам, ки аксари таҳиягарон навъбандиро танҳо бо ду роҳи гуногун амалӣ мекунанд. Яке аз онҳо ба истифодаи усули sort()синфӣ Collectionsё Arrays, ва дигаре ба истифодаи сохторҳои худфиребкунии додаҳо ба монанди TreeMapва асос ёфтааст TreeSet. Чӣ тавр дуруст ба тартиб даровардан дар Java - 1

Истифодаи усули sort().

Агар шумо бояд коллексияро ҷудо кунед, пас аз 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);
Агар ба шумо лозим аст, ки луғатро ҷудо кунед ( Map), TreeMapсохтори ҷудокуниро истифода баред. 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). Ин маънои онро дорад, ки вақте ки ҳаҷми маълумот дар маҷмӯа ду баробар зиёд мешавад, вақти ҷустуҷӯ ду маротиба зиёд намешавад, балки ба андозаи доимӣ меафзояд .

Муносибати бад ба ҷудо кардани мушкилот

Шумо ҳоло ҳам метавонед мисолҳоеро пайдо кунед, ки барномасозон алгоритмҳои ҷудокуниро мустақилона тавсиф мекунанд. Рамзи мураттабсозиро, ки дар зер оварда шудааст, баррасӣ кунед (муттаҳидкунии массиви дукарата бо тартиби афзоиш ). Ин code на танҳо бесамар, балки хондан ҳам ғайриимкон аст. Ва ин гуна мисолхо бисьёранд.
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