mit Hilfe von Java-Sorter, das heißt:Java Sammlung vs benutzerdefinierte Sortierung Sortierung - Geschwindigkeit
Collections.sort(myArrayList, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return x;
}
});
und
myArrayList.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return x;
}
});
mit umgeben 'out' Tags zeigen, dass die Methode 600-800 Millisekunden in Anspruch nimmt.
Dies ist einfach eine zu große Verzögerung beim Sortieren von 50 - 100 Arrays.
Meine Fragen ist, würden benutzerdefinierte Methoden zum Sortieren von Arrays schneller sein?
Der obige Code funktioniert sehr gut, aber es ist einfach viel zu langsam ...
Jedes Array (myArrayList) hat etwa 44 Elemente zu implementieren.
Es dauert 600-800 Millisekunden, um eine Sortierung abzuschließen, daher können 50-100 Arrays bis zu 80000 Millisekunden dauern.
Executable:
System.out(timeMillis);
Collections.sort(fourtyFourItemsArrayL, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
Item i1 = o1 >= 16 ? player.getInventory().getItem(o1 - 16) : player.getEquipment().getItem(o1 - 1);
Item i2 = o2 >= 16 ? player.getInventory().getItem(o2 - 16) : player.getEquipment().getItem(o2 - 1);
int price1 = i1 == null ? 0 : i1.getDefinitions().getProtectionPrice();
int price2 = i2 == null ? 0 : i2.getDefinitions().getProtectionPrice();
if (price1 > price2)
return -1;
else if (price1 < price2)
return 1;
return 0;
}
});
System.out(timeMillis);
das würde abhängen. Müssen Sie die Arrays in sich selbst sortieren? oder sortieren Sie die Arrays in Bezug auf die Elemente, die sie haben (Vergleichen von Arrays durch einige Eigenschaften ihrer Elemente) – ItamarG3
Dies sind keine Array-'s, sondern' List's.Meinst du 50-100 Listen oder 50-100 Elemente einer Liste? Bitte geben Sie ein vollständigeres Beispiel an. – davidxxx
Bevor Sie in dieses Kaninchenloch eintauchen, stellen Sie sicher, dass Sie über Daten verfügen, die es unterstützen. Leistungsmessung in Java ist überraschend schwierig. Werfen Sie einen Blick auf http://openjdk.java.net/projects/code-tools/jmh/ – Buhb