package plp.sort; import java.util.*; public class SortableArray implements SortableData { private Object [] array; private Comparator comparator; public SortableArray(Comparable [] array) { this(array, null); } public SortableArray(Object [] array, Comparator comparator) { this.array = array; this.comparator = comparator; } public int length() { return array.length; } public void swap(int i, int j) { Object tmp = array[i]; array[i] = array[j]; array[j] = tmp; } public Object access(int i) { return array[i]; } public int compare(int i, int j) { return (comparator == null ? ((Comparable) array[i]).compareTo(array[j]) : comparator.compare(array[i], array[j])); } }