Java中的两个ArrayList
来源:互联网 发布:win10桌面数据恢复 编辑:程序博客网 时间:2024/06/05 00:02
1. java.util.ArrayList
java.util.ArrayList底层的数据保存是通过静态数组来实现的,ArrayList在实例化时会构造一个默认大小10个或者构造函数指定大小的数组,当ArrayList大小变化时,ArrayList底层是通过Arrays.copyOf数组深拷贝实例化一个新的静态数组来完成大小变化的,此操作会占用大量cpu,同时旧的数组占用的内存也需要GC来回收。因此,在向ArrayList增加大量元素操作时,最好先调整好ArrayList到目标大小。
ArrayList中的操作有:
setaddaddAllensureCapacity(int minCapacity)remove(int index)remove(Object obj)
数组扩容通过一个公开的方法ensureCapacity(int minCapacity)来实现。在实际添加大量元素前,我也可以使用ensureCapacity来手动增加ArrayList实例的容量,以减少递增式再分配的数量。数组扩容通过一个公开的方法ensureCapacity(int minCapacity)来实现。在实际添加大量元素前,我也可以使用ensureCapacity来手动增加ArrayList实例的容量,以减少递增式再分配的数量。
2. java.util.Arrays$ArrayList
Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(),add()等,所以throw UnsupportedOperationException。
静态数组在使用Arrays.asList()返回的ArrayList就是java.util.Arrays$ArrayList对象,调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。java.util.Arrays$ArrayList继承了静态数组 大小 固定不变的特性。
转载注明地址:http://www.chengxuyuans.com/j2ee/60665.html
- Java中的两个ArrayList
- java比较两个ArrayList<String>,得出两者中的不同元素
- JAVA中的容器arraylist
- Java中的ArrayList
- java中的数据结构--ArrayList
- Java中的Array&ArrayList
- Java中的ArrayList数组
- 实现Java中的ArrayList
- JAVA中的ArrayList
- java中的ArrayList详解
- java中的ArrayList
- 【Java】两个ArrayList之间求交并补
- 原来Java中有两个ArrayList
- ArrayList中的Java对象排序
- Java中的ArrayList的容量
- Java中的Vector,ArrayList,LinkedList
- 简单实现Java中的ArrayList
- Java中的ArrayList的容量
- 长城守卫 Beijing guards CERC 2004 LA3177 解题总结
- Apache Solr单机环境配置(包括中文分词和Java API的使用)
- 断箭:不相信自己的意志,永远也做不成将军
- 解24点的算法
- trustZone初探(一)
- Java中的两个ArrayList
- 如何学习一门新语言
- iOS开发之打包上传到App Store——(三)申请证书并且发布应用程序到App Store
- c++下载文件解决服务器缓存问题
- 张正友标定法 【计算机视觉学习笔记--双目视觉几何框架系列】
- vijos p1014 (旅行商简化版 双进程DP)
- 最小的k个数
- 实验三 UDP服务器端程序设计
- 企业部署