1   // Example 4.3 ArrayListDemo.java                         
2   //                                                            
3   //                                                            
4   // Copyright 2003 Bill Campbell and Ethan Bolker                         
5                                                               
6   // Tell the java compiler that the ArrayList class is in
7   // the java.util part of the library.
8   
9   import java.util.ArrayList; 
10  
11  //  Exercise the most important parts of the ArrayList API.
12  //
13  // %> java ArrayListDemo
14  // Create a list containing three SimpleObjects.
15  // 0    zero
16  // 1    one
17  // 2    two
18  // Replace the object at position 0.
19  // Put a new object at 2 and push the rest along.
20  // Print out the list again.
21  // 0    new zero
22  // 1    one
23  // 2    one point five
24  // 3    two
25  
26  public class ArrayListDemo 
27  {
28      public static void main( String[] args ) 
29      {
30          System.out.println("Create a list containing three SimpleObjects.");
31  
32          // Create a new, empty ArrayList 
33          // with the ArrayList constructor.
34          ArrayList myList = new ArrayList();
35  
36          // Put three things on it with the add()
37          // method - each add appends to the list.
38          myList.add(new SimpleObject("zero"));
39          myList.add(new SimpleObject("one"));
40          myList.add(new SimpleObject("two"));
41  
42          // Print the list with a for loop.
43          // size() method tells how long the list is.
44          // get(int index) method retrieves value stored at position index
45          // The (SimpleObject) cast tells Java what type of thing you got
46          for (int i = 0; i < myList.size() ; i++ ) {
47              SimpleObject foo = (SimpleObject)myList.get(i); 
48              System.out.println(i + "\t" + foo.name);
49          }
50  
51          // set(int index) method changes value stored at position index
52          System.out.println("Replace the object at position 0.");
53          myList.set(0, new SimpleObject("new zero"));
54  
55          System.out.println("Put a new object at 2 and push the rest along.");
56          myList.add(2, new SimpleObject("one point five"));
57  
58          System.out.println("Print out the list again.");
59          for (int i = 0; i < myList.size() ; i++ ) {
60              SimpleObject foo = (SimpleObject)myList.get(i); // note cast!
61              System.out.println(i + "\t" + foo.name);
62          }
63      }
64  
65      // This really simple class exists only to provide 
66      // things to put in the ArrayList.
67      //
68      // It's an inner class, declared inside the ArrayListDemo 
69      // class, which is its scope.
70      //
71      // Since it's visible only here, we are using a public
72      // name field rather than a private field and a public
73      // getName() 
74  
75      private static class SimpleObject 
76      {
77          public String name;
78          
79          public SimpleObject( String name ) 
80          {
81              this.name = name;
82          }
83      } // end of body of inner class SimpleObject
84  } // end of body of ArrayList Demo
85