Вектор — это подкласс AbstractList, а Stack — это подкласс Вектор в Java API. Java Collections Framework была представлена в Java 2. Ранее поддерживалось несколько структур данных, в том числе классы Vector и Stack. Эти классы были переработаны, чтобы соответствовать Java Collections Framework, но все их методы старого стиля сохранены для
совместимость.
Vector аналогичен ArrayList, за исключением того, что он содержит синхронизированные методы для доступа и изменения вектора. Синхронизированные методы могут предотвратить повреждение данных при одновременном доступе и изменении вектора двумя или более потоками. Для многих приложений, не требующих синхронизации, использование ArrayList более эффективно, чем использование Vector.
Класс Vector расширяет класс AbstractList. Он также содержит методы, содержащиеся в исходном классе Vector, определенном до Java 2, как показано на рисунке ниже.
Большинство методов класса Vector, перечисленных на UML-диаграмме на рисунке выше, аналогичны методам в интерфейсе List. Эти методы были представлены до появления Java Collections Framework. Например, addElement(Object element) аналогичен методу add(Object element) за исключением того, что метод addElement синхронизируется. Используйте класс ArrayList, если вам не нужна синхронизация. Он работает намного быстрее, чем Векторный.
Метод elements() возвращает Перечисление. Интерфейс Enumeration был представлен до Java 2 и был заменен интерфейсом Iterator. Вектор широко используется в устаревшем коде Java, поскольку это была реализация массива изменяемого размера в Java до Java 2.
В Java Collections Framework Stack реализован как расширение Vector, как показано на рисунке ниже.
Класс Stack был представлен до Java 2. Методы, показанные на рисунке выше, использовались до Java 2. Метод empty() аналогичен методу isEmpty (). Метод peek() просматривает элемент в верхней части стека, не удаляя его. Метод pop() удаляет верхний элемент из стека и возвращает его. Метод push(Object element) добавляет указанный элемент в стек. Метод search(Object element) проверяет, находится ли указанный элемент в стеке.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3