когда использовать linkedlist не более класса arraylist в java?

я всегда был один, чтобы просто использовать:

list<string> names = new arraylist<>();
portability

я использую интерфейс как имя типа , так что когда я задаю такие вопросы, я могу переработать свой код.

linkedlistarraylist

когда следует применять и наоборот?