title: Java ArrayList and LinkedList - adding element at end implementation details
body: <p>My understanding of why arraylist is faster than a linkedlist is that with an arraylist you basically only need one action - update the reference at the end array element, whereas with a linked list you have to do much more e.g. create a new node, update 2 references, go through linked list and update the last node to point to the new one etc.</p>
  
  <p>However I am not sure how java implement these. How does the arraylist know where the "last" element is, does it store a value of the last element or does it traverse the array and add a new element after the last?</p>
  
  <p>And linked lists, do they store a reference to the last node in the list, or do they traverse the entire list to get to the end?</p>