ArrayList arraylist和list的区别

- ArrayList:我们可以将其看作是能够自动增长容量的数组。
- 利用ArrayList的toArray()返回一个数组。
- Arrays.asList()返回一个列表。
- 迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素。

ArrayList类扩展AbstractList并执行List接口。ArrayList支持可随需要而增长的动态数组。在Java中,标准数组是定长的。在数组创建之后,它们不能被加长或缩短,这也就意味着你必须事先知道数组可以容纳多少元素。但是,你直到运行时才能知道需要多大的数组。为了解决这个问题,类集框架定义了ArrayList。本质上,ArrayList是对象引用的一个变长数组。也就是说,ArrayList能够动态地增加或减小其大小。数组列表以一个原始大小被创建。当超过了它的大小,类集自动增大。当对象被删除后,数组就可以缩小。

ArrayList有如下的构造函数
– ArrayList( )
– ArrayList(Collection c)
– ArrayList(int capacity)
– 第一个构造函数建立一个空的数组列表。
– 第二个构造函数建立一个数组列表,该数组列表由类集c中的元素初始化。
–第三个构造函数建立一个数组列表,该数组有指定的初始容量(capacity)。容量是用于存储元素的基本数组的大小。当元素被追加到数组列表上时,容量会自动增加。

尽管当对象被存储在ArrayList对象中时,其容量会自动增加。仍可以通过调用ensureCapacity()方法来人工地增加
ArrayList的容量。如果事先知道将在当前能够容纳的类集中存储许许多多的项时,你可能会想这样做。在开始时,通过一次性地增加它的容量,就能避免后面的再分配。因为再分配是很花时间的,避免不必要的处理可以改善性能。
ensureCapacity( )方法如下所示
– void ensureCapacity(int cap)
– 这里,cap是新的容量,相反地,如果想要减小在ArrayList对象之下的数组的大小,可以调用trimToSize( )方法,将此ArrayList 实例的容量调整为列表的当前大小。该方法如下
– void trimToSize( )

- void removeRange(int fromIndex, int toIndex)
- 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。


当使用ArrayList时,有时想要获得一个实际的数组,这个数组包含了列表的内容。可以通过调用方法toArray()来实现它。下面是几个为什么可能想将类集转换成为数组的原因
ArrayList arraylist和list的区别
– 对于特定的操作,可以获得更快的处理时间
– 为了给方法传递数组,而方法不必重载去接收类集
– ————为了将新的基于类集的程序与不认识类集的老程序集成

ArrayList 底层采用数组实现,当使用不带参数的构造方法生成 ArrayList 对象时,实际上会在底层生成一个长度为10 的Object 类型数组如果增加的元素个数超过了 10 个,那么 ArrayList 底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。对于ArrayList 元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。

– Arrays.asList()
- 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同Collection.toArray一起,充当了基于数组的 API与基于 collection 的 API 之间的桥梁。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/282529.html

更多阅读

批量授权、零售版和OEM的区别 oem授权书

批量授权、零售版和OEM的区别——简介批量授权、零售版和OEM的区别当涉及到购买许可证(license)的问题,相信许多人都有过迷茫。不知道一些相应的license的问题。而购买license的渠道很多,那么我们应该要购买哪些license呢?他们的区别又

告诉您高丽参和西洋参的区别方法 高丽参 西洋参 人参

许多消费者都在问高丽参和西洋参的区别。西洋参又称广东人参、花旗参。高丽参和西洋参的区别主要是品种和药用功效的不同,但这两种参都统属人参科。高丽参和西洋参的区别方法高丽参,又叫做韩国红参,是属于热性的中药,大补气血的上品

哈士奇和阿拉斯加的区别 狗狗智商排名

哈士奇和阿拉斯加的区别——简介有一种狗狗和哈士奇长得很像,毛要比哈士奇长了许多。不要惊讶,它叫“阿拉斯加”。原产美国的阿拉斯加州,为什么它长得那么像哈士奇,而且都是雪橇犬呢?接下来,就让我们一起揭开它们神秘的面纱!哈士奇和阿拉

文旦和柚子的区别 姑娘果的功效与作用

文旦和柚子的区别——简介文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——工具/原料文旦和柚子是属于关系,文旦是柚子的一种文旦和柚子的区别——方法/步骤文旦和柚子的区别 1、文旦 名称:文旦 产地:浙江台州玉环 别名

声明:《ArrayList arraylist和list的区别》为网友与你长久分享!如侵犯到您的合法权益请联系我们删除