package pr03; public class TuneList { private static final int INITIAL_SIZE = 5; private Tune[] list; private int tuneCount; public TuneList() { list = new Tune[INITIAL_SIZE]; tuneCount = 0; } public void add(Tune tune) { if (list.length == tuneCount) doubleListSize(); list[tuneCount] = tune; tuneCount++; } private void doubleListSize() { Tune[] newList = new Tune[2 * list.length]; for (int i = 0; i < tuneCount; i++) newList[i] = list[i]; list = newList; } public void display() { for (int i = 0; i < tuneCount; i++) System.out.println(list[i]); } public void displayByTitle() { Tune[] sList = new Tune[tuneCount]; for (int i = 0; i < sList.length; i++) sList[i] = list[i]; selectionSort(sList); for (int i = 0; i < sList.length; i++) System.out.println(sList[i]); } private static void selectionSort(Tune[] list) { for (int index = 0; index < list.length - 1; index++) { int min = findMinPosition(list, index); Tune temp = list[min]; list[min] = list[index]; list[index] = temp; } } private static int findMinPosition(Tune[] list, int start) { int min = start; for (int scan = start + 1; scan < list.length; scan++) if (list[min].compareTo(list[scan]) > 0) min = scan; return min; } }