Какую структуру данных я должен использовать для простого синхронизированного LIFO? Я использую Android Java 1.6. Проблема с коллекциями Java состоит в том, что существуют миллионы немного разных классов и интерфейсов.
Как насчет стандартного стека ?Он синхронизирован.
ОБНОВЛЕНИЕ
Согласно javadoc, вы должны использовать реализацию Deque вместо Stack.Например, LinkedBlockingDeque
Deque
Stack
Очередь Класс java.util.concurrent ConcurrentLinkedQueue предоставляет эффективную масштабируемую потокобезопасную неблокирующую очередь FIFO. Пять реализаций в java.util.concurrent поддерживают расширенный интерфейс BlockingQueue, который определяет блокирующие версии put и take: LinkedBlockingQueue, ArrayBlockingQueue, SynchronousQueue, PriorityBlockingQueue и DelayQueue. Различные классы охватывают наиболее распространенные контексты использования для производителя-потребителя, обмена сообщениями, параллельных задач и связанных параллельных проектов. Интерфейс BlockingDeque расширяет BlockingQueue для поддержки операций FIFO и LIFO (на основе стека). Класс LinkedBlockingDeque обеспечивает реализацию.
Класс java.util.concurrent ConcurrentLinkedQueue предоставляет эффективную масштабируемую потокобезопасную неблокирующую очередь FIFO. Пять реализаций в java.util.concurrent поддерживают расширенный интерфейс BlockingQueue, который определяет блокирующие версии put и take: LinkedBlockingQueue, ArrayBlockingQueue, SynchronousQueue, PriorityBlockingQueue и DelayQueue. Различные классы охватывают наиболее распространенные контексты использования для производителя-потребителя, обмена сообщениями, параллельных задач и связанных параллельных проектов. Интерфейс BlockingDeque расширяет BlockingQueue для поддержки операций FIFO и LIFO (на основе стека). Класс LinkedBlockingDeque обеспечивает реализацию.
Цитируется из Документов API для пакета java.util.concurrent .