the linked list has a wonderful capability that's frequently seen in C where you can do O(1) removal from a list. E.g. you can have an "object" detach itself. This is not possible in Java's standard linked list implementation, among other languages.
in general, inserting and removing elements from a vector requires a memory copying.
There are programming languages that have linked lists as their fundamental data structure, like Lisp and Erlang.
For situations where I don't need random access, linked lists are hard to beat.
Linked lists also make wonderful immutable data structures.
linked lists have wonderful filter and flatmap performance. how much memory copying would a vector require?