/** Sort a 2 dimensional array based on 1 columns data in either ascending or descending order. * array - Array to be sorted * sortCol - column to sort by * sortOrder - sort the column in ascending or descending order. Valid arguments are "asc" and "desc". **/ public static Object[][] sort(Object[][] array, int sortCol, String sortOrder) { ArraySorter sorter=new ArraySorter(array, sortCol, sortOrder); return sorter.sort(); }
public Object[][] sort() { ArraySorterEntry[] arraySorterEntries=getArraySorterEntries(); Arrays.sort(arraySorterEntries); Object[][] returnArray = new Object[getRows()][getCols()]; for (int i=0; i<getRows(); i++) { returnArray[i]=(Object[])arraySorterEntries[i].getSortedObject(); } return returnArray; }
private ArraySorterEntry[] getArraySorterEntries() { Object[] arrayToSort = getArrayToSort(); ArraySorterEntry[] arraySorterEntries=new ArraySorterEntry[getRows()]; for(int i=0; i<getRows(); i++) { arraySorterEntries[i] = new ArraySorterEntry(arrayToSort[i], (Comparable) array[i][sortCol]) ; } return arraySorterEntries; }
return arrayValueToSort; } } /******************* end inner class */ /** Test code for ArraySorter **/ public static void main(String[] args) throws Exception { Object[][] array={{"7","8", "9"}, {"1","2", "3"}, {"4","5", "6"},}; System.out.println("unsorted array"); display(array); System.out.println("sorted array: asc on col 0"); ArraySorter sorter=new ArraySorter(array, 0, "asc"); display(sorter.sort()); System.out.println("sorted array: desc on col 0"); sorter=new ArraySorter(array, 0, "desc"); display(sorter.sort()); array=new Double[][]{{new Double(10),new Double(30)},{new Double(20),new Double(40)}};
/** Sort a 2 dimensional array based on 1 columns data in either ascending or descending order. * * @param array - Array to be sorted * @param sortCol - column to sort by * @param sortOrder - sort the column in ascending or descending order. Valid arguments are "asc" and "desc". **/ public static Object[][] sort(Object[][] array, int sortCol, String sortOrder) { ArraySorter sorter=new ArraySorter(array, sortCol, sortOrder); return sorter.sort(); }