This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I believe this is deeper than what SCJP requires. But yes, I agree with you. The underline implementation of ArrayList is array, so inserting element would be a pain when the original array is full and you have to expand the size. However, retrieving element from array is fast, all you need to do is
while in linkedList your have to do:
Iteration : ArrayList has indexed elements, so it can jump directly at last element at anytime in O(1) time, while LinkedList will take O(N) time. So faster iteration than LinkedList.
LinkedHashMap extends HashMap plus uses doubly linked list so it has faster iteration than HashMap.
Insertion/Deletion: LinkedHashMap has to maintain insertion order so it is slower than HashMap in insertion/deletion.
ArrayList has to move elements upside or downside if you insert or delete that will require O(N) time, while LinkedList just has to change its references to its elements that takes only O(1) time. So linkedlist is faster here.
Kindly note that he mentioned 'iteration' and not 'random access' for linked list.
I feel iteration "might be" slower in linkedlist compared to arrayList but if it is slower it has to be slightly slower and not considerably slower.