Для справки, предположим, что вызов:
list.retainAll(coll)
В противном случае вопрос не имеет смысла, учитывая, что list
- это изменяемая коллекция и та, которая имеет заданный порядок.
Гарантирован ли метод коллекции Java retainAll () оставить порядок списка, который он изменяет, без изменений?
В спецификации явно сказано, что удаляет элементыиз list
, которого нет в coll
, поэтому вопрос о порядке зависит от того, указан ли метод remove
для сохранения порядка.
Поскольку вы сказали ", оставьте порядок из list" тогда ответ: Да
Но вы также сформулировали это " Является ли Java collection метод retainAll () ", такесли list
не List
, а какой-либо другой тип коллекции, то ответ - Нет, потому что не все типы коллекции гарантируют порядок.
Может ли это зависеть от того, какой объект коллекции использует retainAll?
Так как list
этоТот, который использует метод, затем: Нет
Ну, если предположить, что равен a List
, но это уже получено.
Есливы имели в виду coll
как "тот, который использует метод", тогда: Нет
Однако производительность зависит от типа сбора coll
, потому что реализация использует coll.contains()
для проверки совпадений, так что вы получите намного лучшую производительность, если coll
будет Set
.