ArrayList / LinkedList / Vector三者有什么区别呢

如题所述

arraylist 和 linkedlist 是线程不安全。vector 线程安全。
arraylist 存储结构 是 连续的。
linkedlist 是链式存储。 数据结构不一致。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-19
ArrayList
1)只能装入引用对象(基本类型要转换为封装类);
2)线程不安全;
3)底层由数组实现(顺序表),因为由顺序表实现,所以会具备顺序表的特点,如:需要声明长度、超出长度时需要进行扩容、不适合频繁的移动删除元素、检索元素快;
4)capacity默认为10,超出时,capacity自动增长0.5倍(oldCapacity >> 1)。
Vector:
1)只能装入引用对象(基本类型要转换为封装类);
2)Vector通过synchronized方法保证线程安全;
3)底层也由数组实现;
4)capacity默认为10(在构造方法中),超出时增长capacityIncrement的量,capacityIncrement小于等于0时,则增长1倍((capacityIncrement > 0) ? capacityIncrement : oldCapacity)。
LinkedList
1)只能装入引用对象(基本类型会转换为封装类);
2)线程不安全;
3)底层实现为链表,具备链表的特点,如:不用声明长度、检索性能较差,但是插入移动删除较快。
4)链表通过Node对象实现。
相似回答