Eliminate casts in the sorting
method.
Reimplement a standard sort (such as quicksort) directly in the class
being sorted.
Make the comparison method faster.
Directly access fields rather than calling methods.
Sort linked lists with a merge sort.
Use comparison keys to replace objects where the comparison method
requires a calculation for each object being compared, and that
calculation could be cached.
Partially presort the array with a faster partial sort; then re-sort
using the full comparison method.
Use sorting interfaces to support different sorting algorithms.
Support generic optimizations within a sorting framework. These
optimizations include:
Comparison key objects that cache calculations that would otherwise
need to be repeatedly executed
Comparison key objects that hold the ordering value in a directly
accessible public field
Improved object creation by mapping arrays of comparison key objects
into multiple arrays
Use specialized sorting algorithms for faster times and better
scaling behavior.
Use specialized sorting algorithms when the sorting order of objects
can be mapped directly to integer keys.