Java: Collections.list для итератора / итерируемый - PullRequest
2 голосов
/ 30 сентября 2010

Почему java.util.Collections.list только для Enumeration, но не для Iterator (или Iterable)? Или почему нет перегрузки этой функции для Iterator (или Iterable)? Есть ли другой метод, который делает это? Есть ли причина, почему это так?

Ответы [ 3 ]

3 голосов
/ 25 октября 2010

Никто на самом деле еще не ответил, так что здесь я иду:

Когда это произошло, вероятно, еще не было Iterable.Теперь он устарел (конструкторы большинства реализаций Collection предоставляют то же самое) и просто остается там для обратной совместимости.

1 голос
/ 30 сентября 2010

Из JavaDoc:

Возвращает список массивов, содержащий элементы, возвращаемые указанным перечислением, в порядке, в котором они возвращаются перечислением.Этот метод обеспечивает взаимодействие между устаревшими API, которые возвращают перечисления , и новыми API, для которых требуются коллекции.

Если у вас есть коллекция и вы хотите создать новый список на основе этой коллекции, вы можете использовать конструкторы или метод addAll().Этот метод похож на адаптер, предоставляемый каркасом коллекций.

Для пользовательских итераций вы можете использовать расширенный цикл for для копирования элементов, возвращаемых итератором, в существующий список.

0 голосов
/ 30 сентября 2010

его цель - обеспечить взаимодействие между устаревшими API, которые возвращают перечисления, и новыми API, для которых требуются коллекции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...