/** * A nice ol' bubble sort. This is used because it has a passable performance when the list starts * off sorted. */ public void sort() { synchronized (this) { boolean swap; do { swap = false; for (int i = 1; i < tracks.size(); i++) { Track lastTrack = (Track) tracks.elementAt(i - 1); Track track = (Track) tracks.elementAt(i); if (compare(lastTrack, track) > 0) { tracks.setElementAt(track, i - 1); tracks.setElementAt(lastTrack, i); swap = true; } } } while (swap); } }