Является ли Collections.syncronizedList вектором? - PullRequest
1 голос
/ 28 сентября 2011

Эффективно ли Collections.syncronizedList(new ArrayList()) делает arrayList вектором? Если нет, то что это делает? Если да, то почему это было введено в первую очередь?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 28 сентября 2011

Предоставляет синхронизированное представление (оболочку) любого списка. Отличия:

  • Вы можете сделать синхронизированный просмотр любой реализации списка. Синхронизированный LinkedList не является Vector.
  • исходный список не синхронизирован - только вид.
0 голосов
/ 28 сентября 2011

Collections.synchronizedList(...) переносит синхронизированный доступ к базовому списку, но все же сохраняет характеристики базового списка другими способами. Так, например, если вы оберните LinkedList, iterator() remove() будет эффективной операцией. (Та же операция для Vector - O (n).)

Так что оболочка абсолютно не такая, как Vector.

0 голосов
/ 28 сентября 2011
  1. Это не делает список чем-то другим, но оборачивает Список чем-то, что также выглядит как список, но не содержит данных, кроме упакованного списка.
  2. См. 1.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...