/*
 * Program to demonstrate using ArrayList to maintain
 * a list of integers using Integer objects, with
 * automatic boxing.
 * File: ArrayListOfIntegersWithAutoBoxing.java
 * Aaron Tan
 */

import java.util.*;

class ArrayListOfIntegersWithAutoBoxing {

   public static void main(String[] args) {
      
      List<Integer> intList = new ArrayList<Integer>();
      Integer intObject;

      // Add three friends
      intList.add(15); // this is auto boxing, equivalent to:
                       // intList.add(new Integer(15));

      intList.add(30);

      intList.add(-8);

      System.out.println("There are " + intList.size() + 
                         (intList.size()<2 ? " integer" : " integers")
                         + " in the list.");
      displayList(intList);
   }

   // Display all elements in the list.
   public static void displayList(List<Integer> aList) {
      for (Integer i: aList) {
         System.out.println(i); // this is auto unboxing, equivalent to:
                                // System.out.println(i.intValue());
      }
   }

   // Display all elements in the list.
   // This version uses the iterator method.
   public static void displayListV2(List<Integer> aList) {
      Integer i;
      Iterator<Integer> itr = aList.iterator();

      while (itr.hasNext()) {
         i = itr.next();
         System.out.println(i);
      }
   }

}


