结合API文档和网上搜索来的ArrayList的特效来总结下:
API文档是如此介绍ArrayList的:
接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)
Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差。
List允许有相同的元素
ArrayList的方法都没有同步,所以在多线程中是不安全的,必须自己同步
toArray()方法返回的是和原列表相同的对象,也就是说:
arrayList.toArray()[0]==arrayList.get(0)返回的是true(假定arrayList不空)。
clone()方法是一个浅拷贝。
API文档:
在添加大量元素前,应用程序可以使用 ensureCapacity 操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量
可以通过自己调用ensureCapacity()提高效率
创建同步线程的ArrayList
List list = Collections.synchronizedList(new ArrayList(...));
ArrayList提供了4种添加方法:
- list.add(e);
- list.add(index, element);
- list.addAll(c);
- list.addAll(index, c);
每次添加都调用ensureCapacity()方法,扩大容量是每次是1.5倍
- list.set(index, element);
- list.add(index, element);
set是用指定的元素替代此列表中指定位置上的元素
add是将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素
对于新增和删除操作add和remove,ArrayList要移动数据。所以性能不是很好
而访问数据是直接根据数组下标来获得数据的,所以速度很快
移除ArrayList内重复数据:
- public static void removeDuplicate(List arlList) {
- HashSet h = new HashSet(arlList);
- arlList.clear();
- arlList.addAll(h);
- }
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个 ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
分享到:
相关推荐
### ArrayList源代码解析 在Java集合框架中,`ArrayList`是一个非常重要的类,它实现了`List`接口,并提供了基于动态数组的数据结构。本篇将详细分析`ArrayList`的源码,帮助读者理解其内部实现机制。 #### 类定义...
### MP3播放器源代码分析 #### 概述 该段源代码主要涉及一个基于Android平台的MP3播放器应用程序的实现。从标题“MP3的绿色源代码”及描述中可以看出,这是一个开源项目,目的是为了让其他开发者可以方便地学习、...
总结,通过对"Gallery3D"在Android 4.0版本的源代码分析,我们可以学习到高级的图像处理技术、高效的资源管理和优化策略,以及良好的用户交互设计。这对于任何希望在Android平台上开发高质量图像应用的开发者来说,...
3. **集合框架**:在【86-88】和【92-94】源代码中,可能涉及到ArrayList、LinkedList、HashMap等集合类的使用,以及遍历、添加、删除元素的方法。集合框架是Java编程中频繁使用的工具,熟练掌握它们能帮助我们更...
总结来说,这份“Java数据结构与算法+源代码高清版”资源涵盖了IT领域的基础核心知识,它可以帮助学习者或开发者从理论到实践全面掌握数据结构和算法,提升编程能力,为解决复杂问题打下坚实的基础。通过深入学习和...
此外,文件名称列表中提到的"《JAVA程序设计教程》源代码"很可能包含异常处理、输入/输出流、集合框架(如ArrayList、LinkedList、HashMap等)、线程编程和文件操作的相关示例。这些内容是Java应用程序开发中不可或...
总结来说,"进销存管理系统java源代码"是一个全面的商业应用,涉及到Java编程、Web开发框架、数据库操作、多线程、并发控制等多个IT领域的核心知识点,对于学习和理解企业级Java应用开发具有很高的参考价值。
《仓库管理系统JAVA源代码解析与应用》 仓库管理系统是企业运营中的重要组成部分,它负责对库存物品进行跟踪、控制和管理,确保供应链的顺畅运行。本文将深入探讨一款基于JAVA语言开发的仓库管理系统,该系统以其...
总结来说,这个压缩包可能是Java编程的实例,涵盖了基础到高级的Java概念,通过阅读和分析源代码,你可以提升对Java语言的理解,学习到实际开发中的技巧和最佳实践。记得仔细阅读`下载说明.txt`,遵循其中的指导进行...
通过分析这些源代码,我们可以深入理解Java的实际应用,提高编程技巧,并能快速适应不同的项目需求。同时,源代码备份也是为了防止在开发过程中对代码造成不可逆的修改,确保随时可以回溯到原始状态。 "复件 src"这...
总结来说,C#语言的俄罗斯方块源代码是一个集成了C#基本语法、面向对象编程、Windows Forms应用、游戏逻辑、图形绘制以及状态管理等多个方面的综合实践案例。通过分析和学习这个源代码,初学者可以对C#编程有更深入...
根据提供的文件信息,我们可以分析并总结出以下关键知识点: ### 1. 文件导入与处理 在文件开头,可以看到大量的Java包导入语句,这表明该系统利用了多种Java内置类来实现其功能。 - `java.io` 包下的类:如 `...
#### 关键代码分析 1. **主类** `MyTestGeneric`: - 主方法 (`main`):创建并显示 `MyFrame99` 实例。 2. **子类** `MyFrame99` 继承自 `Frame`: - 构造函数:初始化绘图框架,并设置初始属性如背景颜色、窗口...
总结而言,Java进销存管理系统源代码是学习企业级应用开发的宝贵资源,它涵盖了Java编程、数据库操作、GUI设计、权限控制等多个方面的技术。通过对这些源代码的学习和实践,开发者可以提升自己的综合能力,更好地...
在学习这些源代码时,建议逐步分析每个类的功能,了解它们之间的关系,调试运行,查看输出结果,以加深理解。同时,结合设计模式的学习,思考在实际项目中如何应用这些模式来优化代码结构。这将有助于你成长为一名...
分析Java 6 API的源代码可以帮助开发者深入理解Java的工作原理,了解类和方法的内部实现,从而提高编程效率和代码质量。例如,通过查看`ArrayList`或`HashMap`的源代码,可以学习到如何高效地实现动态数组和哈希表...
10. **源代码分析** 分析提供的“Snake”源代码文件,我们可以看到类的设计、方法的实现以及游戏逻辑的具体细节。通过阅读和理解源码,学习者可以加深对Java编程和游戏开发的理解。 总结,实现Java贪吃蛇游戏涉及...
三、源代码分析 提供的源代码示例展示了如何在VB2008中集成分页功能,包括数据加载、分页逻辑处理、用户交互等环节。通过对源代码的学习,开发者可以了解分页控件的具体实现过程,为自己的项目提供参考。 四、详细...
通过阅读和分析源代码,你可以了解如何使用面向对象的设计原则,如封装、继承和多态,来构建模块化的应用程序。此外,你会看到如何利用Java的API库,如集合框架、IO流和网络编程接口,来处理数据和实现特定功能。 ...
《张孝祥老师基础加强源代码和PPT》是一份珍贵的教育资源,源自著名IT教育专家张孝祥老师的教学资料。这份资料集包含了张孝祥老师2009年精心录制的Java高新技术视频课程,旨在为学习者提供深入浅出的基础加强教程,...