From: Jérôme Benoit Date: Thu, 5 Apr 2018 16:56:02 +0000 (+0200) Subject: exo2: make the class methods more inline with the List interface. X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=54c717d48cc5408be4d7960771dfabc1d7f486e6;p=Project_POO.git exo2: make the class methods more inline with the List interface. Signed-off-by: Jérôme Benoit --- diff --git a/exo2/ListExtension.java b/exo2/ListExtension.java index 3ba71ac..a015be5 100644 --- a/exo2/ListExtension.java +++ b/exo2/ListExtension.java @@ -32,28 +32,32 @@ public class ListExtension { return list.add(e); } + public int size() { + return list.size(); + } + /** * Should mimic the List add(int index, T value) method * @param value [description] * @return [description] */ - public void addMiddleIter(E value) { - int mid = list.size() / 2; + public void addIter(int index, E value) { ListIterator iter = list.listIterator(); int i = 0; - // go to the element at mid + 1 index - while (iter.hasNext() && i <= mid) { + // go to the element at index + 1 + while (iter.hasNext() && i <= index) { iter.next(); i++; } iter.add(value); } - public void addNEMiddle(int Nelements) { + //FIXME: replace parameter by the list of objects to add + public void addNelements(int index, int Nelements) { ListIterator iter = list.listIterator(); int i = 0; - // go to the element at the middle + 1 index - while (iter.hasNext() && i <= list.size() / 2) { + // go to the element at index + 1 + while (iter.hasNext() && i <= index) { iter.next(); i++; } diff --git a/exo2/Main.java b/exo2/Main.java index 2df8729..2fbf94f 100644 --- a/exo2/Main.java +++ b/exo2/Main.java @@ -18,20 +18,20 @@ class Main { } long startTime = System.nanoTime(); - //for (int i = 0; i < 100000; i++) { - // array.addMiddleIter(i); - //} - array.addNEMiddle(100000); + // for (int i = 0; i < 100000; i++) { + // array.addIter(array.size() / 2, i); + // } + array.addNelements(array.size() / 2, 100000); long stopTime = System.nanoTime(); 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: " + execTimeArray + " ns"); startTime = System.nanoTime(); - //for (int i = 0; i < 100000; i++) { - // list.addMiddleIter(i); - //} - list.addNEMiddle(100000); + // for (int i = 0; i < 100000; i++) { + // list.addIter(list.size() / 2, i); + // } + list.addNelements(list.size() / 2, 100000); stopTime = System.nanoTime(); long execTimeLinked = stopTime - startTime; //System.out.println("Insert time in the middle of the LinkedList: " + TimeUnit.NANOSECONDS.toSeconds(execTime) + " s");