//TestStringListSortVariations.java

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class TestStringListSortVariations
{
    public static void main(String[] args)
    {
        System.out.println();
        List<String> aList = new ArrayList<>();
        aList.add("Zeke");
        aList.add("Michael");
        aList.add("Allan");
        System.out.println("ArrayList elements in original order:");
        System.out.print(aList);
        System.out.println();
        System.out.println("ArrayList elements in (default) sorted order:");
        Collections.sort(aList);
        System.out.print(aList);
        System.out.println();
        System.out.println("ArrayList elements sorted by increasing length:");
        Collections.sort(aList, (s1, s2) -> s1.length() - s2.length());
        System.out.print(aList);
        System.out.println();

        System.out.println();
        List<String> linkedList = new LinkedList<>();
        linkedList.add("Zeke");
        linkedList.add("Michael");
        linkedList.add("Allan");
        System.out.println("LinkedList elements in original order:");
        System.out.print(linkedList);
        System.out.println();
        System.out.println("LinkedList elements in (default) sorted order:");
        Collections.sort(linkedList);
        System.out.print(linkedList);
        System.out.println();
        System.out.println("LinkedList elements sorted by increasing length:");
        Collections.sort(linkedList, (s1, s2) -> s1.length() - s2.length());
        System.out.print(linkedList);
        System.out.println();
    }
}
/*  Output:

    ArrayList elements in original order:
    [Zeke, Michael, Allan]
    ArrayList elements in (default) sorted order:
    [Allan, Michael, Zeke]
    ArrayList elements sorted by increasing length:
    [Zeke, Allan, Michael]

    LinkedList elements in original order:
    [Zeke, Michael, Allan]
    LinkedList elements in (default) sorted order:
    [Allan, Michael, Zeke]
    LinkedList elements sorted by increasing length:
    [Zeke, Allan, Michael]
*/
