所以我有一个可以在堆栈或队列中的列表。这两者之间是否有任何性能差异?
另外我注意到java.utils实现扩展了Vector。制作我自己的实现会更快,或者直接使用Vector吗?
答案 0 :(得分:5)
不推荐使用java.util.Stack类。请改用Deque。
就性能而言,这取决于实施,
答案 1 :(得分:2)
Stack和Vector都是同步的。使用java.util.ArrayDeque作为Stack和Queue,请参阅API:
当用作堆栈时,此类可能比Stack快,并且在用作队列时比LinkedList更快。
答案 2 :(得分:1)
性能取决于您要使用的数据结构(arraylist,linkedlist等)以及您将执行的所有操作。
因此,您可以根据自己的需要决定数据结构。建议您通过Java API了解不同API的优缺点。
答案 3 :(得分:1)
这取决于使用模式和具体实施。
一般来说:
P.S。我不建议使用任何扩展或使用java.util.Vector
的旧实现。现在有许多更好的实现可用,具体取决于您的确切用例。