/******************************************************************************
 * Sorting an array (asc & desc) - Using the Arrays.sort() method
 * Printing an entire array      - Using the Arrays.toString() method
 * 
 ******************************************************************************/
import java.util.*;                 //import utility class

public class arraySort2
{
    public static void main (String[] args) 
    {   
        int[ ]     nums1 = {65,43,24,98,76,102,-50,47};
        Integer[ ] nums2 = {65,43,24,98,76,102,-50,47};
        String[ ]  words = {"The","quick","brown","fox","jumped","over","the","lazy","dog"};

        // Numeric Sorts ------------------------------------------

        System.out.println("The original int array:");
        System.out.println(Arrays.toString(nums1));

        System.out.println("Sort Ascending of int array...");
        Arrays.sort(nums1);                             
        System.out.println(Arrays.toString(nums1));

        System.out.println("Sort Descending of int array...");
//      Arrays.sort(nums1, Collections.reverseOrder());          //I cannot sort desc, array must be Object type                             
        System.out.println(">>I cannot sort descending of int array");
        System.out.println(Arrays.toString(nums1));

        System.out.println();

        System.out.println("The original Integer array:");
        System.out.println(Arrays.toString(nums2));

        System.out.println("Sort Ascending of Integer array...");
        Arrays.sort(nums2);                             
        System.out.println(Arrays.toString(nums2));

        System.out.println("Sort Descending of Integer array...");
        Arrays.sort(nums2, Collections.reverseOrder());  
        System.out.println(Arrays.toString(nums2));

        System.out.println();

        // String Sorts ------------------------------------------

        System.out.println("The original String array:");
        System.out.println(Arrays.toString(words));

        System.out.println("Sort Ascending...");
        Arrays.sort(words);                             
        System.out.println(Arrays.toString(words));

        System.out.println("Sort Ascending, Ignore Case...");
        Arrays.sort(words, String.CASE_INSENSITIVE_ORDER);
        System.out.println(Arrays.toString(words));

        System.out.println("Sort Descending");
        Arrays.sort(words, Collections.reverseOrder());  
        System.out.println(Arrays.toString(words));

        System.out.println("Sort Descending, Ignore Case...");
        Arrays.sort(words, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));  
        System.out.println(Arrays.toString(words));
    }
}