exo2 & 3: Think object and add exo3 code from A to B.
[Project_POO.git] / exo2 / ListExtension.java
diff --git a/exo2/ListExtension.java b/exo2/ListExtension.java
new file mode 100644 (file)
index 0000000..bba85d2
--- /dev/null
@@ -0,0 +1,67 @@
+import java.util.List;
+import java.util.ListIterator;
+
+public class ListExtension<E> {
+    private List<E> list;
+
+    public ListExtension() {
+        setList(null);
+    }
+
+    public ListExtension(List<E> l) {
+        setList(l);
+    }
+
+    /**
+     * [setList description]
+     * @param l [description]
+     */
+    public void setList(List<E> l) {
+        list = l;
+    }
+
+    /**
+     * [getList description]
+     * @return [description]
+     */
+    public List<E> getList() {
+        return list;
+    }
+
+    public boolean add(E e) {
+        return list.add(e);
+    }
+
+    /**
+     * Should mimic the List<E> add(int index, T value) method
+     * @param  value [description]
+     * @return       [description]
+     */
+    public void addMiddleIter(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);
+    }
+
+    public void addNEMiddle(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());
+        }
+    }
+
+}