之前在看java Collections框架的时候,有看到vector 和 stack(是vector的子类) 这两个实现类,但是发现很少在项目中看到相关的代码,一般和list相关的操作都是直接使用ArrayList或则LinkedList。一查发现Vector 和 Stack者两个类官方已经不推荐使用了。
看了下vector和ArrayList的以区别,都是用数组实现的,然后操作基本一样,比较大的不同点是vector是线程安全的,在vector的大多数方法都使用synchronized关键字修饰,所以使用上vector性能会差很多
arrayList是线程不安全的(但可以通过Collections.synchronizedList()实现线程安全)。
所以基本上来说vector 因为线程安全的实现方法比较粗暴效率较低。
stack因为继承至vector当然也不推荐使用,可以使用java.util.Deque双端队列来实现队列与栈的各种需求。