这三者都是实现集合框架中的list,也就是所谓的有序集合,都在JDK的java.util包中。功能比较类似,都提供按照下标进行定位、添加、删除等操作,也提供迭代器以遍历其内容。
Vector是Java早期提供的线程安全的动态数组。Vector内部是使用对象数组来保存数据。
ArrayList是引用更广泛的动态数组的实现。它不是线程安全的。Vector的扩容逻辑是增加为原来的1倍,而ArrayList则是增加50%。
ArrayList和Vector作为动态数组,其内部元素以数组形式顺序存储,所以适合随机访问的场景。但在中间位置插入元素,性能较差。
LinkedList是JDK提供的双向链表,所以它不需要调整容量。它也不是线程安全的。而LinkedList在进行节点插入、删除操作时比较高效,但不擅长随机访问。
网友评论