import java.util.*;

public class Driver{
   public static void main(String[] args){
      CyclicArrayList<String> list = new CyclicArrayList<String>();
      CyclicArrayList<String> list2 = new CyclicArrayList<String>();

 
      list.add("apple");
      list.add("mellon");
      list.add("peach");
      list.add("orange");

      list2.add("apple");
      list2.add("mellon");
      list2.add("peach");
      list2.add("orange");

      System.out.println("Original List");	
      System.out.println(list);
      list.rotateLeft();
      System.out.println("List after left rotation");
      System.out.println(list);

      System.out.println("Original List");	
      System.out.println(list2);
      list2.rotateRight();
      System.out.println("List after right rotation");
      System.out.println(list2);


      Double[] listNew = {2.3, 6.7, 1.2, 9.0};
      System.out.println("Last element: " +last(listNew));

      ArrayList<Double> listNew2 = new ArrayList<Double>();

      for(Double x : listNew)
         listNew2.add(x);

      reverse(listNew2);
      System.out.println("List reversed");
      System.out.println(listNew2);
    }
   

  public static <E> E last(E[] ar){
       return ar[ar.length-1];
  }
  
  public static <E> void reverse(ArrayList<E> lst){
        for(int k=1; k<lst.size(); k++){
           E item = lst.remove(k);
           lst.add(0,item);
        }
 }

}

