size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的固定时间运行,也就是说,添加 n 个元素需要 O(n) 时间。其他所有操作都以线性时间运行(大体上讲)。与用于LinkedList 实现的常数因子相比,此实现的常数因子较低。
每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。
在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。
测试程序:
private static void testlist() {
List al = new ArrayList();
long s1 = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
al.add("s");
}
long s11 = System.currentTimeMillis();
System.out.println("没有设定大小:" + (s11 - s1));
List bl = new ArrayList(10000000);
s1 = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
bl.add("s");
}
s11 = System.currentTimeMillis();
System.out.println("设定大小:" + (s11 - s1));
ArrayList cl = new ArrayList(1000);
s1 = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
cl.add("s");
}
s11 = System.currentTimeMillis();
System.out.println("设定大小为小于最大数量的时候:" + (s11 - s1));
}
测试结果:
没有设定大小:843 设定大小:235 设定大小为小于最大数量的时候:765
结论:
在已知List中要存放多少条数据时,应该先设定好大小,然后再向List中添加数据,这样效率会提高3倍左右。
PS:很长时间没研究代码了,原来以前写的好多代码都不规范。
这适用于jdk1.5以后的版本,以前的版本没看过。
分享到:
相关推荐
根据提供的文件信息,我们可以推断出这是一本关于Java程序性能优化的书籍,作者是葛一鸣,并提供了该书PDF版本的下载链接。虽然没有具体的书籍内容,但基于标题、描述以及通常这类书籍会涉及的主题,我们可以总结出...
总之,理解ArrayList、LinkedList和Vector的内部工作原理和性能特征,可以帮助我们做出更明智的选择,优化代码性能,并避免不必要的资源消耗。在深入源码阅读和实践过程中,我们可以更深入地理解这些类的设计思想和...
然而,随着用户数量的增加,性能优化成为确保系统稳定运行的关键因素。本文将深入探讨J2EE程序性能优化的一些关键技术和策略。 一、概要 J2EE平台的核心在于其分层架构,它支持分布式计算,简化了应用开发。通过...
《大话java性能优化》是周明耀先生的一本深入探讨Java性能调优的专业书籍,其主要内容涵盖了Java程序设计中的各种性能优化策略和技术。这本书旨在帮助开发者理解和掌握如何提升Java应用的运行效率,减少资源消耗,...
Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效稳定的Java程序能够带来显著的业务优势。本资源包含一个PDF文档和相关的视频教程,旨在帮助你提升Java程序的速度和稳定性。 首先...
Java程序性能优化是每个开发人员都需要关注的重要领域,它涵盖了多个方面,旨在提高代码执行效率,减少资源消耗,以及提升应用程序的稳定性和响应速度。在本文中,我们将深入探讨Java性能优化的关键点,帮助你的Java...
Java程序性能优化是Java开发中的重要环节,它旨在提高应用程序的运行效率,减少资源消耗,提升用户体验。在Java世界中,性能优化涵盖了多个层面,包括代码优化、内存管理、线程调度、数据库交互以及JVM参数调整等。...
在IT领域,尤其是在Web开发中,ASP.NET网站的性能优化是一项关键任务,旨在提升网站的运行速度和响应能力。本文将深入探讨与标题和描述相关的关键知识点,包括但不限于:数据库查询优化、数据处理策略、页面加载优化...
Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效的代码执行能够带来更好的用户体验,减少服务器资源的消耗,降低运营成本。本资料包“Java程序性能优化 让你的Java程序更快、更...
在J2EE(Java 2 Platform, Enterprise Edition)应用程序开发中,性能优化是至关重要的一个环节,它关乎到系统的响应速度、并发处理能力和资源利用效率。J2EE平台提供了多种服务,如Web容器、EJB容器、JMS、JPA等,...
本示例“ListView高级部分,性能优化的demo”将深入探讨六个关键领域的优化策略,帮助开发者提升ListView的运行效率,提供更好的用户体验。 1. **ViewHolder模式**:这是ListView性能优化的核心。通过复用已创建的...
在Java编程领域,程序性能优化是一项至关重要的任务,它直接影响到软件的运行效率、资源消耗以及用户体验。"Java程序性能优化"这个主题涵盖了多种技术与策略,旨在提升Java应用程序的运行速度,减少内存占用,以及...
### JAVA程序性能优化 在Java开发中,程序性能优化是一个重要的环节,它直接影响到应用程序的运行效率、用户体验以及系统的整体稳定性。本文将基于提供的标题、描述及部分内容,深入探讨几个关键性的性能优化策略。...
在Java性能优化领域,开发者需要关注许多关键点以确保应用程序高效、稳定地运行。这篇文章将深入探讨Java性能优化的相关知识点,结合给定的标签“源码”和“工具”,我们将从代码层面和利用工具的角度来分析优化策略...
Java性能优化是提升系统效率的关键环节,涉及到代码编写、内存管理、并发处理等多个方面。以下是对"Java性能优化的45个细节"的详细解读: 1. **选择正确的数据结构**:根据业务需求,合理选用ArrayList、LinkedList...
Java性能优化是提升软件效率和用户体验的关键步骤,涵盖了多种技术和策略。本文将深入探讨Java通用篇、J2EE篇、GUI篇、EJB篇以及缓存优化等方面的知识点,旨在帮助开发者实现更高效的代码。 一、Java通用篇 在Java...
JNI在很多场景下非常有用,比如调用本地库、优化性能关键部分或者实现跨平台功能。在这个主题中,我们将深入探讨如何在JNI中操作ArrayList对象并添加一个int类型的数据。 首先,我们需要理解ArrayList在Java中的...