http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java#473Почему java.util.Arraylist # ясно реализован так, как это было в OpenJDK?
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
Мой вопрос, почему они должны сделать цикл через вспомогательный массив {O (п)}, чтобы каждый элемент, имеющих право на сбор мусора, когда они могли просто быть инициализируется массив подкладочный, отбрасывая ссылки на весь массив в целом {O (1)} и делая его пригодным для сбора мусора? Производительность O (n) для clear()
кажется мне не очень приятной или я чего-то не хватает?
возможно дубликат [list.clear() против списка = новый ArrayList();] (http://stackoverflow.com/questions/6961356/list-clear-vs-list-new-arraylistinteger) –
Tala
Я не подумайте, что это дубликат. – nawfal