Java реализует класс стека с помощью Vector, почему? Хотя кажется, что Arraylist должен был стать лучшим выбором. Java хотел, чтобы Stack был потокобезопасным или обязательным для Stack вообще (что, на мой взгляд, не так), чтобы быть потокобезопасным или существует какая-либо другая теория использования Vector для реализации Stack в Java?Почему java.util.Stack реализован с использованием Vector и Not Arraylist
ответ
Stack
и Vector
присутствовали в JDK 1.0. ArrayList
не был добавлен до JDK 1.2. Stack
Наследование от Vector
испечено в API, так что теперь его невозможно изменить.
Но это устаревший класс, так или иначе. Фиксирование не является приоритетом. собственный Javadoc рецензия Stack
«s говорит:
Более полный и последовательный набор операций стека LIFO обеспечивается интерфейсом
Deque
и его реализации, которые должны быть использованы в предпочтении к этому классу. Например:Deque<Integer> stack = new ArrayDeque<Integer>();
Я подозреваю, что это просто исторический. java.util.Stack существует с тех пор, как Java 1.0 и ArrayList не были введены до 1.2. Вектор был всем, что у них было в то время, чтобы реализовать его.
Почему бы не изменить его в 1.2? Ну, Sun и Oracle были осторожны, чтобы сделать Java обратно совместимым с течением времени, и это было бы потрясающим изменением для перехода от потокобезопасного к нет.
- 1. Как реализован C++ std :: vector?
- 2. Почему java.util.Stack позволяет .add (int, E)?
- 3. java.util.Stack Соответствующая структура данных?
- 4. Коэффициент загрузки Arraylist и Vector?
- 5. с использованием java.util.Stack print line текстов в обратном порядке
- 6. vector/arraylist in C
- 7. C Vector/ArrayList/LinkedList
- 8. Есть ли несинхронизированный java.util.Stack?
- 9. Vector vs Collections.synchronizedList (ArrayList)
- 10. java vector to arraylist
- 11. Vector not dereferencable
- 12. Почему Q.all реализован так?
- 13. JPA - Сопоставление java.util.Stack
- 14. Копирование java.util.Stack в Java
- 15. Merge Sort - Vector not sorting
- 16. g ++: 'vector' file not found
- 17. STL Vector Erase Not Working
- 18. SIGSEGV с использованием Eigen и std :: vector
- 19. нить была заблокирована на java.util.Stack
- 20. SelectionSort реализован с использованием общего метода - неправильные результаты
- 21. Несколько ArrayList с 10 записями с использованием итератора и ArrayList
- 22. Коллекции: Array, Vector и ArrayList. Различия и соответствующее использование
- 23. java.lang.indexOutOfBound с использованием arraylist
- 24. Почему gmtime реализован таким образом?
- 25. GridView стили не реализован с использованием RowStyle
- 26. Список реализован с использованием двоичного дерева inorder
- 27. Как реверс «java.util.stack» содержимое переменной
- 28. Java Vector или ArrayList для примитивов
- 29. Почему «импорт» реализован таким образом?
- 30. странные вещи с использованием std :: vector
Возможный дубликат [В чем разница между ArrayList и Vector?] (Http://stackoverflow.com/questions/2986296/what-are-the-differences-between-arraylist-and-vector) –
Поскольку Stack и Вектор был введен в Java одновременно, в JDK 1.0, а ArrayList был введен позже, в JDK1.2 –