Java 调整集合以容纳大量对象

Java 调整集合以容纳大量对象,java,performance,collections,scalability,Java,Performance,Collections,Scalability,如果一个集合(如arraylist)将存储数千个自定义对象(如具有多个属性的人),那么在我的代码或集合的构造函数中是否有什么可以做的,以便为如此大的集合做好准备 我不是真的在考虑专用线程等,而是更多地考虑负载因素(我需要在上面的场景中触及这个吗?) 谢谢您可以: new ArrayList<T>(10000); newarraylist(10000); 它预先分配具有指定大小(例如10000)的数组,以便在添加元素时不必重新分配。除此之外,你无能为力。此外-对于ArrayList

如果一个集合(如arraylist)将存储数千个自定义对象(如具有多个属性的人),那么在我的代码或集合的构造函数中是否有什么可以做的,以便为如此大的集合做好准备

我不是真的在考虑专用线程等,而是更多地考虑负载因素(我需要在上面的场景中触及这个吗?)

谢谢

您可以:

new ArrayList<T>(10000);
newarraylist(10000);

它预先分配具有指定大小(例如10000)的数组,以便在添加元素时不必重新分配。除此之外,你无能为力。此外-对于ArrayList来说,它存储的引用类型无关紧要,因此信息无法真正帮助您进行优化。

我只需将集合初始化为接近最终大小的大小,以尽量减少调整大小的次数:

List<Person> persons = new ArrayList<Person>(1024);
List persons=newarraylist(1024);

另一种方法:

既然我们谈论的是如此庞大的收藏,那将“吃掉”你的公羊,

我认为您应该考虑将此集合存储在数据库中,并且只当您必须读取/写入/更新时,

这在很大程度上取决于实际的特定集合实现。ArrayList在内部实际上是一件非常琐碎的事情,除了选择正确的初始大小之外,没有什么可做的。其他类型的集合实现可能需要考虑很多因素。同意。可能集合的大小会急剧增加,而RAM无法容纳。