https://medium.com/@cstoppgmr/relearning-java-what-are-the-differences-between-vector-arraylist-and-linkedlist-c055c4f7b175