return list.add(e);
}
+ public int size() {
+ return list.size();
+ }
+
/**
* 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;
+ public void addIter(int index, E value) {
ListIterator<E> 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<E> 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++;
}
}
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");