Подсписок Java не возвращает новый экземпляр списка - PullRequest
0 голосов
/ 29 марта 2012

Я наткнулся на проблему, когда подсписок Java не возвращает экземпляр списка, а возвращает представление списка.Что привело к тому, что тема застряла.

Я немного погуглил и нашел это .

1 Ответ

6 голосов
/ 29 марта 2012

Да, List.subList возвращает представление, как задокументировано:

Возвращает представление части этого списка между указанным fromIndex включительно и toIndex, исключительным,(Если fromIndex и toIndex равны, возвращаемый список пуст.) Возвращенный список поддерживается этим списком, поэтому неструктурные изменения в возвращенном списке отражаются в этом списке, и наоборот.Возвращенный список поддерживает все необязательные операции со списками, поддерживаемые этим списком.

И да, создание представления для представления в представлении ... может оказаться плохой идеей.

Мораль этой истории не в том, чтобы «не использовать subList», а в том, что «убедитесь, что вы знаете, какие методы вы вызываете, - читайте документацию».

...