001    package collections;
002    
003    /**
004     * Run through gerbils and make them jump in four ways.
005     * 
006     * @author Kristian Torp, torp (at) cs (dot) aau (dot) dk
007     * @version 1.0
008     */
009    
010    import java.util.*; // to use ArrayList
011    
012    public class UseArrayList {
013    
014            public void forEachLoop(ArrayList<Gerbil> list) {
015                    for (Gerbil g : list)
016                            g.jump();
017            }
018    
019            public void get(ArrayList<Gerbil> list) {
020                    for (int i = 0; i < list.size(); i++) {
021                            Gerbil g = list.get(i);
022                            g.jump();
023                    }
024            }
025    
026            public void useIterator(ArrayList<Gerbil> list) {
027                    Iterator<Gerbil> it = list.iterator();
028                    while (it.hasNext()) {
029                            Gerbil g = it.next();
030                            g.jump();
031                    }
032            }
033    
034            public void useListIterator(ArrayList<Gerbil> list) {
035                    ListIterator<Gerbil> it = list.listIterator();
036                    while (it.hasNext()) {
037                            Gerbil g = it.next();
038                            g.jump();
039                    }
040            }
041    
042            /**
043             * Main method that uses ArrayList and Gerbil objects
044             */
045            public static void main(String[] args) {
046                    ArrayList<Gerbil> gerbils = new ArrayList<Gerbil>();
047                    for(int i = 0; i < 42; i++){
048                            gerbils.add(new Gerbil(i));
049                    }
050                    UseArrayList cls = new UseArrayList();
051                    cls.forEachLoop(gerbils);
052                    cls.get(gerbils);
053                    cls.useIterator(gerbils);
054                    cls.useListIterator(gerbils);
055            }
056    }