import java.util.List; import java.util.ArrayList; import java.util.LinkedList; /** List demo. @author Jed Yang, 2017-01-11 */ public class ListDemo { public static void main(String[] args) { /* List list = new ArrayList(); list.add("hello"); list.add("world"); String a = (String)(list.get(0)); // (String) to typecast System.out.println(a); //*/ // using generics List list2 = new ArrayList(); list2.add("hello"); list2.add("world"); String b = list2.get(0); System.out.println(b); for (String str : list2) { System.out.println(str); } // use our own class! List list3 = new ArrayList(); list3.add(new Die()); // 6-sided Die list3.add(new Die(120)); // 120-sided Die Die c = list3.get(0); c.roll(); System.out.println(c.getValue()); // int is not a class, so we use a wrapper class Integer List list4 = new ArrayList(); list4.add(23); // autoboxing list4.add(42); int d = list4.get(0); // autounboxing System.out.println(d); List list5 = new ArrayList(); for (int i = 0; i < 100000; i++) { list5.add(i * i); } for (int i = 0; i < 10; i++) { System.out.println(list5.get(i)); } // compare time efficiencies of ArrayList and LinkedList long startTime = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { // fast for array // list5.add(list5.size() / 2, i); // add at midpoint // fast for linked list list5.add(0, i); // add at beginning } long stopTime = System.currentTimeMillis(); System.out.println("Run time: " + (stopTime - startTime)); //*/ } }