Я не думаю, что эффективность является ключевым моментом здесь.Ключевым моментом является правильность .
Два фрагмента делают разные вещи .
Первая версия заполняет список различными Movie
объектами.
Вторая версия заполняет список несколькими ссылками на один объект Move
.Затем вы переходите к изменению шаблона заголовка этого объекта.Поэтому, когда цикл завершится, у вас будет N ссылок на один и тот же объект, и шаблон заголовка для этого объекта будет последним установленным.
Хотя это невозможноскажем наверняка без дополнительного контекста, вторая версия выглядит неверно ... она не делает то, что (я думаю) вы пытаетесь сделать.
Сказав это, «неправильная» версияВаш код, вероятно, немного быстрее.Является ли разница существенной (о чем стоит беспокоиться), зависит от контекста.И вопрос в любом случае спорный.
Если бы вы сравнили производительность этих двух "правильных" версий:
ArrayList<Movie> localMovies = new ArrayList<Movie>();
for (File file : listOfFiles) {
Movie movie = new Movie();
movie.setTitlePattern(filePattern);
localMovies.add(movie);
}
и
ArrayList<Movie> localMovies = new ArrayList<Movie>();
Movie movie;
for (File file : listOfFiles) {
movie = new Movie();
movie.setTitlePattern(filePattern);
localMovies.add(movie);
}
, было бы больше всегоскорее всего не будет заметной разницы.