Как создать список с определенным размером элементов - PullRequest
5 голосов
/ 25 ноября 2011

Скажем, я хочу быстро создать список, который содержит 1000 элементов.Каков наилучший способ сделать это?

Ответы [ 2 ]

16 голосов
/ 25 ноября 2011

Вы можете использовать Collections.nCopies.

Обратите внимание, что возвращаемый список является неизменным. На самом деле, в документах говорится: " если только что выделенный объект данных является крошечным (он содержит одну ссылку на объект данных) ".

Если вам нужен изменяемый список, вы должны сделать что-то вроде

List<String> hellos = new ArrayList<String>(Collections.nCopies(1000, "Hello"));

Если вы хотите 1000 различных объектов, вы можете использовать

List<YourObject> objects = Stream.generate(YourObject::new)
                                 .limit(1000)
                                 .collect(Collectors.toList());

Опять же, нет никаких гарантий относительно возможностей реализации результирующего списка. Если вам нужно, скажем ArrayList, вы бы сделали

                                 ...
                                 .collect(ArrayList::new);
0 голосов
/ 25 ноября 2011

Fastest: int[] myList = new int[1000] будет содержать 1000 элементов, равных нулю.Но я уверен, что это не соответствует вашим потребностям.Расскажите нам больше о том, что вам нужно, и я мог бы помочь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...