В настоящее время единственный стек, о котором я ничего знаю, это Vector, я обычно использую это вместо массива, но я понимаю, что существуют другие типы стеков, и все они подходят для разных заданий.Java и различные типы стеков
Проект, над которым я сейчас работаю, требует, чтобы я вставлял объекты в определенную позицию внутри стека, а не всегда перед стекей, и у меня создается впечатление, что вектор не может быть лучшим классом для этой работы ,
Может ли кто-нибудь, пожалуйста, дать мне краткое описание других типов стеков, доступных мне с языком Java и их преимуществами и недостатками? Являются ли эти названия однородными? Например. Используются ли они только на языке Java или используются в качестве общих терминов в области компьютерных наук?
Спасибо
Связанный список - это неэффективная структура данных, неэффективная для памяти, и зачастую не лучшая реализация стека; массивные списки обеспечивают амортизацию O (1) push и pop. –
@ Майкл, но вставка в любую структуру с поддержкой массива имеет плохую (O (n)) производительность независимо от того, что. – jjnguy
@jinguy: true, но они предлагают O (1) произвольный доступ. Если вам нужны оба (как правило, это так), то они отменяют друг друга, а эффективность памяти делает реализацию на основе массива лучшим выбором. Только если вам часто нужно добавлять/удалять во время итерации и не нужен произвольный доступ, это связанный список - хороший выбор. –