/******************************************************************************
 * Sorting incoming strings on the command line using an array 
 ******************************************************************************/
import java.util.*;

public class ArraySort
{
    public static void main (String[] words) 
    {
        if (words.length < 2) 
        {
            System.out.println("Re-execute with at least 2 words");
            System.exit(-1);
        }
    
        System.out.println("Before the sort");
        System.out.println("---------------");

        for (int i=0; i < words.length; i++)        //print each word 
            System.out.println(words[i]);

        System.out.println();

// ---- choose one of the following ------------------------------------

//      Arrays.sort(words);                                     //sort words array Asc

//      Arrays.sort(words, Collections.reverseOrder());         //sort words array Descending

//      Arrays.sort(words, String.CASE_INSENSITIVE_ORDER);      //sort words array Asc, Not case sensitive

//      Arrays.sort(words, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));    //Desc, Not case sensitive

//      CompareNumAsc sortOrder  = new CompareNumAsc();         //create a comparator object
//      Arrays.sort(words, sortOrder);                          //sort words array Asc, Numerically

//      CompareNumDesc sortOrder  = new CompareNumDesc();       //create a comparator object
//      Arrays.sort(words, sortOrder);                          //sort words array Desc, Numerically

        CompareLast3Char sortOrder  = new CompareLast3Char();   //create a comparator object
        Arrays.sort(words, sortOrder);                          //sort words array by last 3 characters

// ---------------------------------------------------------------------

        System.out.println("After the sort");
        System.out.println("--------------");

        for (int i=0; i < words.length; i++)  
            System.out.println(words[i]);       //print after sort
    }
}