import java.util.Arrays; import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.stream.Collectors; import static java.lang.Math.*; public class Sort { public static void main (String [] args) throws NumberFormatException { final int [] data = new int [args.length]; for (int i=0; i<data.length; i++) { data[i] = Integer.parseInt (args[i]); } System.out.printf ("..: %s%n", Arrays.toString(data)); // Sort a primitive array (in ascending order) Arrays.sort (data); System.out.printf ("**: %s%n", Arrays.toString(data)); // Convert primitive int array to an array list final List<Integer> list2 = new ArrayList<Integer> (data.length); for (Integer i: data) list2.add (i); // Convert primitive int array to a list final List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList()); // Sort a collection (in ascending order) Collections.sort (list2); // Sort in descending order Collections.sort (list2, Collections.reverseOrder()); // Descending sort using Java 8 lambda Collections.sort (list2, (i,j) -> Integer.compare(j,i)); // Unusual, total-order on integers Collections.sort (list2, new Comparator<Integer>(){ public int compare (Integer i, Integer j) { final int i1 = 2*abs(i)+ (i<0?-1:0); final int j1 = 2*abs(j)+ (j<0?-1:0); return Integer.compare (i1,j1); } }); // Unusual, total-order on integers using Java 8 lambda Collections.sort (list2, (i,j) -> { final int i1 = 2*abs(i)+ (i<0?-1:0); final int j1 = 2*abs(j)+ (j<0?-1:0); return Integer.compare (i1,j1);}); } }