use*_*414 5 java collections performance arraylist
说,我想快速创建一个包含1000个元素的列表.完成此任务的最佳方法是什么?
aio*_*obe 17
你可以用Collections.nCopies.
但请注意,返回的列表是不可变的.事实上,文档说" 新分配的数据对象很小(它包含对数据对象的单个引用) ".
如果你需要一个可变列表,你会做类似的事情
List<String> hellos = new ArrayList<String>(Collections.nCopies(1000, "Hello"));
Run Code Online (Sandbox Code Playgroud)
如果您想要1000个不同的对象,则可以使用
List<YourObject> objects = Stream.generate(YourObject::new)
.limit(1000)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
同样,不保证结果列表实现的功能.如果你需要,比如说ArrayList,你会这样做
...
.collect(ArrayList::new);
Run Code Online (Sandbox Code Playgroud)