2014-11-07 5 views
0

Почему в стандартной библиотеке не существует класса, который реализует интерфейсы и List? Связанный набор сохраняет порядок набора, но не разрешает произвольный доступ.Почему в java.util нет произвольного доступа

Почему это не считается полезным?

+1

Почему бы вам не написать один? Нет ничего удивительного в реализации существующих вещей - вы можете делать все, что они могут. –

+0

См. Также http://stackoverflow.com/questions/7780813/java-combination-of-set-and-list-interfaces – Raedwald

+0

Я знаю, что «теперь есть волшебство», и да, я могу и реализовал его сам. Этот вопрос не вызывает интереса. – benehsv

ответ

2

Потому что это чрезвычайно сложно реализовать эффективно, для одного, по крайней мере, если вы поддерживаете удаление. Например, Guava ImmutableSet поддерживает произвольный доступ через свой вид asList(), но не поддерживает мутацию.

2

Потому что это невозможно сделать без расторжения договора Set или List. A Set может не содержать дубликатов. Что произойдет, если вы используете контейнер как List и попытаетесь добавить дубликат?

+0

См. Также http://stackoverflow.com/questions/1035008/what-is-the-difference-between-set-and-list – Raedwald

Смежные вопросы