Главное, на что следует обратить внимание, это то, что другой код может иметь ссылку на список.Если существующий список виден в другом месте, хотите ли вы, чтобы этот код видел очищенный список, или оставьте существующий список?
Если ничто другое не может увидеть список, я бы, вероятно, просто очистил его - но непричины производительности;просто то, как вы описали операцию , звучит больше похоже на очистку, чем "создание нового списка".
Документы ArrayList<T>
не определяют, что происходит с базовыми структурами данных, но, глядя на реализацию 1.7 в Eclipse, похоже, что вам следует, вероятно, вызвать trimToSize()
после clear()
- в противном случае вы все равно можете получить список, подкрепленный большим массивом нулевых ссылок.(Может быть, это не проблема для вас, конечно ... возможно, это более эффективно, чем копирование массива по мере увеличения размера. Вы узнаете об этом больше, чем мы.)
(Конечно, создание нового списка не требует, чтобы старый список устанавливал все элементы массива на нуль ... но я сомневаюсь, что это будет значительным в большинстве случаев.)