Как разработчик, все, кто их позаботился, столкнулись с требованием, когда вам нужна изменчивая коллекция, где вы можете добавлять, удалять, извлекать (FIFO).Почему список предпочтительнее для очередей?
В каждом приложении я вижу использование List (ArrayList), чтобы удовлетворить это требование, но мой вопрос, почему разработчик не подходит для очереди (возможно, ArrayDeque). В соответствии с моим текущим пониманием я нахожу как ArrayList (List), так и ArrayDeque (Queue) одинаково хорошими для требования, которое я изложил. Но все же я никогда не видел очереди в своей карьере , всегда нахожу только Список.
Так что мой вопрос в том, почему очередь не является предпочтительной над списком. Я уверен, что должна быть какая-то причина, но почему-то мне не хватает понимания ?
Update: - здесь мои четкие требования
1) Добавление происходит в конце и должен быть fast.Probably O (1)
2) Итерация должна быть быстрой
3) поиск и удаление любого конкретного элемента должны быть быстрее.
Выполняя вышеуказанные требования, я думаю, что Arralist имеет смысл над ArrayDeque. Вот моя точечная причина
1) И как Arraylist, так и ArrayDeque будет O (1). Правильно?
2) Итерационные характеристики будут одинаковыми для обоих, так как это будет на основе индекса. Индекс ArrayDeque будет основываться на отметке времени, тогда как для пользователя arraylist можно явно указать индекс. Правильно?
3) Это будет O индекс ом (1) для обоих в качестве поиска будет происходить на основе
Связанный (я действительно искал его, потому что думал, что я вспомнил дубликат): [Почему типичные реализации списка массивов не являются двукратными?] (Http://stackoverflow.com/q/6147618/319403) – cHao