在我在tomcat上部署的java应用程序中,大约有500K项(甚至可以向上) 添加到ArrayList。 然后,迭代这些列表以检查某些条件。
Que-对于这种情况,是否会使用LinkedList获得性能?
根据实际经验指出超过200K项目~100万项目的数据量。
大多数字符串和具有多个属性的对象列表主要是字符串 (基本上从DB获取数据,将其转换为Java对象并通过HTTP发送) 如果预计数据大小将保持在100K或更低,那么会有差异
答案 0 :(得分:0)
看到这个问题: When to use LinkedList over ArrayList?
LinkedList允许使用常量插入或删除 迭代器,但只是元素的顺序访问。换句话说,你 可以向前或向后走列表,但在中找到一个位置 list需要的时间与列表的大小成正比。
另一方面,ArrayList允许快速随机读取访问,所以你 可以在恒定时间内抓住任何元素。但添加或删除 在任何地方,但最终需要将所有后面的元素移动, 要么开口要么填补空白。此外,如果您添加更多 元素比底层数组的容量,一个新的数组(1.5 分配大小的时间,并将旧数组复制到新数组 一,所以在最坏的情况下添加到ArrayList是O(n)但是常量 平均而言。