我必须创建一个包含n个元素的大型列表(最多可达100,000个).列表中的每个元素都是一个等于列表索引的整数.在此之后,我必须在此列表上调用Collections.shuffle.我的问题是,应该使用哪个列表实现(java集合或apache集合).我的直觉是ArrayList可以在这里使用.所有的想法都很感激.谢谢!
感谢您的投入.我想我坚持使用ArrayList.我目前正在使用带有initialCapacity参数的ArrayList构造函数,并传递列表的大小.因此,如果原始列表是100000,我使用新的ArrayList(100000)创建这个新列表; 因此我认为我没有创建数组并执行asList,因为不会有任何大小调整.此外,像GrowthList和LazyList这样的大多数apache集合列表都不实现RandomAccess.这肯定会减慢shuffle(根据javadocs).FastArrayList确实实现了RandomAccess,但是apache有一个关于这个类的说明,"这个类不是跨平台的.使用它可能会导致某些体系结构出现意外故障".