JavaRush /Blog Jawa /Random-JV /Cara ngurutake basa Jawa kanthi bener
eGarmin
tingkat

Cara ngurutake basa Jawa kanthi bener

Diterbitake ing grup
Nganalisis kode sumber saka akeh proyek Java opensource, aku nemokake manawa umume pangembang mung ngurutake kanthi rong cara. Salah sijine adhedhasar panggunaan metode sort()kelas Collectionsutawa Arrays, lan liyane adhedhasar panggunaan struktur data ngurutake dhewe kayata TreeMaplan TreeSet. Cara ngurutake basa Jawa kanthi bener - 1

Nggunakake metode sort().

Yen sampeyan kudu ngurutake koleksi, banjur gunakake 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());
	}
});
Yen sampeyan kudu ngurutake array, gunakake 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());
	}
});
Cara kasebut sort()trep banget nalika koleksi utawa larik wis diisi nilai.

Nggunakake struktur data ngurutake dhewe

Yen sampeyan kudu ngurutake dhaptar ( List) utawa nyetel ( Set), gunakake TreeSetstruktur ngurutake.
// 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);
Yen sampeyan kudu ngurutake kamus ( Map), gunakake TreeMapstruktur ngurutake. TreeMapdiurutake miturut kunci ( 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);
Pendekatan ing ndhuwur migunani banget ing kasus sampeyan kudu nindakake akeh telusuran kanggo unsur ing koleksi. Struktur data ngurutake dhewe nduweni efisiensi O(log(n))sing luwih apik tinimbang O(n). Iki tegese nalika jumlah data ing koleksi tikel kaping pindho, wektu telusuran ora tikel kaping pindho, nanging mundhak kanthi jumlah konstan .

Pendekatan ala kanggo ngurutake masalah

Sampeyan isih bisa nemokake conto ing ngendi programer nggambarake algoritma ngurutake kanthi mandiri. Coba kode ngurutake sing ditampilake ing ngisor iki (ngurutake array dobel kanthi urutan munggah ). Kode iki ora mung ora efisien, nanging uga ora bisa diwaca. Lan ana akeh conto.
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;
		}
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION