#вопросы_с_собеседований

Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?

July 19, 2020
4 comments
Avatar
Taras Anichyn 
Главная причина stack это низкая производительность, если чекнуть исходники то он наследует поведение другой устаревшей структуры - Vector. Где все методы синхронизированы. Если есть выбор то в общем случае целесообразно использовать ArrayDeque. Эта структура очень удобная так как может служить в роли стэка и очереди. И по производительности лучше.
Данил Суетин 
Taras Anichyn  Главная причина stack это низкая производительность, если чекнуть исходники то он наследует поведение другой устаревшей структуры - Vector. Где все методы синхронизированы. Если есть выбор то в общем случае целесообразно использовать ArrayDeque. Эта структура очень удобная так как может служить в роли стэка и очереди. И по производительности лучше.
LinkedList
Avatar
Beybarys Nurzhanuly 
Jul 19, edited
May be LinkedList ?
Avatar
Taras Anichyn 
Данил Суетин  LinkedList
Интерфейс Deque является лучшим подходом для структур данных которые поддерживают принцип LIFO, поскольку он гарантирует работоспособность всех операций стэка.
Stack, кстати, это не интерфейс в Java, а класс. LinkedList не содержит методы peek(), empty()и search(), так что это не полноценный стек. Но вы в принципе правы, с линкед листа в принципе можно слепить что-то подобное на стэк. А от если говорить о многопоточке, то намного проще использовать ArrayDeque ибо его очень просто декорировать, тогда это будет идентичный стэк, только с возможностью настройки стартовой ёмкости.
Do you want to add a new comment?