package uk.ac.imperial.lsds.seep.integration.performance.microbenchmarks; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.junit.Test; public class IteratorVsPlainForLoopToAccessListPerformanceTest { @Test public void test() { List<String> list = new LinkedList<>(); List<String> alist = new ArrayList<>(); int size = 500; // Full list for(int i = 0; i < size; i++){ list.add(new Integer(i).toString()); alist.add(new Integer(i).toString()); } // total read with iterator Iterator<String> itl = list.iterator(); Iterator<String> ital = alist.iterator(); long startLIt = System.currentTimeMillis(); while(itl.hasNext()){ String a = itl.next(); a = a + "a"; } long stopLIt = System.currentTimeMillis(); long startALIt = System.currentTimeMillis(); while(ital.hasNext()){ String a = ital.next(); a = a + "a"; } long stopALIt = System.currentTimeMillis(); long startLFor = System.currentTimeMillis(); for(int i = 0; i<size; i++){ String a = list.get(i); a = a + "a"; } long stopLFor = System.currentTimeMillis(); long startALFor = System.currentTimeMillis(); for(int i = 0; i<size; i++){ String a = alist.get(i); a = a + "a"; } long stopALFor = System.currentTimeMillis(); System.out.println("IT linkedlist: "+(stopLIt-startLIt)); System.out.println("IT arraylist: "+(stopALIt-startALIt)); System.out.println("FOR linkedlist: "+(stopLFor-startLFor)); System.out.println("FOR arraylist: "+(stopALFor-startALFor)); assertTrue(true); } }