001    package collections;
002    
003    import java.util.List;
004    import java.util.LinkedList;
005    import java.util.Iterator;
006    import java.util.ListIterator;
007    
008    public class UseLinkedList {
009            public void forEachLoop(List<Gerbil> list) {
010                    for (Gerbil g : list)
011                            g.jump();
012            }
013    
014            public void get(List<Gerbil> list) {
015                    for (int i = 0; i < list.size(); i++) {
016                            Gerbil g = list.get(i);
017                            g.jump();
018                    }
019            }
020    
021            public void useIterator(List<Gerbil> list) {
022                    Iterator<Gerbil> it = list.iterator();
023                    while (it.hasNext()) {
024                            Gerbil g = it.next();
025                            g.jump();
026                    }
027            }
028    
029            public void useListIterator(List<Gerbil> list) {
030                    ListIterator<Gerbil> it = list.listIterator();
031                    while (it.hasNext()) {
032                            Gerbil g = it.next();
033                            g.jump();
034                    }
035            }
036    
037            /**
038             * Main method that uses ArrayList and Gerbil objects
039             */
040            public static void main(String[] args) {
041                    LinkedList<Gerbil> gerbils = new LinkedList<Gerbil>();
042                    for (int i = 0; i < 42; i++) {
043                            gerbils.add(new Gerbil(i));
044                    }
045    
046                    UseLinkedList cls = new UseLinkedList();
047                    cls.forEachLoop(gerbils);
048                    cls.get(gerbils);
049                    cls.useIterator(gerbils);
050                    cls.useListIterator(gerbils);
051            }
052    }