exo2 & 3: Think object and add exo3 code from A to B.
[Project_POO.git] / exo2 / Main.java
index 85d48b512ee127807662fae64d40d5a6bdbbd53f..2df8729213d967716022dd7cc45a31b9727272f9 100644 (file)
@@ -1,94 +1,16 @@
 import java.util.ArrayList;
 import java.util.LinkedList;
-import java.util.ListIterator;
 import java.util.concurrent.TimeUnit;
 
 class Main {
 
-    private static <E> void addMiddle(ArrayList<E> array, E value) {
-        int mid = array.size() / 2;
-        array.add(mid + 1, value);
-    }
-
-    private static <E> void addMiddle(LinkedList<E> list, E value) {
-        int mid = list.size() / 2;
-        list.add(mid + 1, value);
-    }
-
-    /**
-     * Should mimic the collection add(int index, T value) method
-     * @param  array [description]
-     * @param  value [description]
-     * @return       [description]
-     */
-    private static <E> void addMiddleIter(ArrayList<E> array, E value) {
-        int mid = array.size() / 2;
-        ListIterator<E> iter = array.listIterator();
-        int i = 0;
-        // go to the element at mid index
-        while (iter.hasNext() && i < mid) {
-            iter.next();
-            i++;
-        }
-        iter.next(); // Insert before mid + 1
-        iter.add(value);
-
-    }
-
-    /**
-     * Should mimic the collection add(int index, T value) method
-     * @param  list  [description]
-     * @param  value [description]
-     * @return       [description]
-     */
-    private static <E> void addMiddleIter(LinkedList<E> list, E value) {
-        int mid = list.size() / 2;
-        ListIterator<E> iter = list.listIterator();
-        int i = 0;
-        // go to the element at mid index
-        while (iter.hasNext() && i < mid) {
-            iter.next();
-            i++;
-        }
-        iter.next(); // Insert before mid + 1
-        iter.add(value);
-    }
-
-    private static <E> void addNEMiddle(ArrayList<E> array, int Nelements) {
-        ListIterator<E> iter = array.listIterator();
-        int i = 0;
-        // go to the element at the middle index
-        while (iter.hasNext() && i < array.size() / 2) {
-            iter.next();
-            i++;
-        }
-        iter.next(); // Insert before mid + 1
-        for (int j = 0; j < Nelements; j++) {
-            iter.add((E)new Object());
-        }
-    }
-
-    private static <E> void addNEMiddle(LinkedList<E> list, int Nelements) {
-        ListIterator<E> iter = list.listIterator();
-        int i = 0;
-        // go to the element at the middle index
-        while (iter.hasNext() && i < list.size() / 2) {
-            iter.next();
-            i++;
-        }
-        iter.next(); // Insert before mid + 1
-        for (int j = 0; j < Nelements; j++) {
-            iter.add((E)new Object());
-        }
-    }
-
     /**
      * The main() function
      * @param String[] args main() function arguments array
      */
     public static void main(String[] args) {
-        ArrayList<Integer> array = new ArrayList<Integer>();
-        LinkedList<Integer> list = new LinkedList<Integer>();
+        ListExtension<Integer> array = new ListExtension<Integer>(new ArrayList<Integer>());
+        ListExtension<Integer> list = new ListExtension<Integer>(new LinkedList<Integer>());
 
         for (int i = 0; i < 1000000; i++) {
             array.add(i);
@@ -97,22 +19,23 @@ class Main {
 
         long startTime = System.nanoTime();
         //for (int i = 0; i < 100000; i++) {
-        //    addMiddleIter(array, i);
+        //    array.addMiddleIter(i);
         //}
-        addNEMiddle(array, 100000);
+        array.addNEMiddle(100000);
         long stopTime = System.nanoTime();
-        long execTime = stopTime - startTime;
+        long execTimeArray = stopTime - startTime;
         //System.out.println("Insert time in the middle of the ArrayList: " + TimeUnit.NANOSECONDS.toSeconds(execTime) + " s");
-        System.out.println("Insert time in the middle of the ArrayList: " + execTime + " ns");
+        System.out.println("Insert time in the middle of the ArrayList: " + execTimeArray + " ns");
 
         startTime = System.nanoTime();
         //for (int i = 0; i < 100000; i++) {
-        //    addMiddleIter(list, i);
+        //    list.addMiddleIter(i);
         //}
-        addNEMiddle(list, 100000);
+        list.addNEMiddle(100000);
         stopTime = System.nanoTime();
-        execTime = stopTime - startTime;
+        long execTimeLinked = stopTime - startTime;
         //System.out.println("Insert time in the middle of the LinkedList: " + TimeUnit.NANOSECONDS.toSeconds(execTime) + " s");
-        System.out.println("Insert time in the middle of the LinkedList: " + execTime + " ns");
+        System.out.println("Insert time in the middle of the LinkedList: " + execTimeLinked + " ns");
+        System.out.println("Rapport du temps d'execution ArrayList/LinkedList = " + (execTimeArray / execTimeLinked));
     }
 }