Array,Arrays和ArrayList比较

来源:互联网 发布:过滤广告的软件 编辑:程序博客网 时间:2024/05/18 00:47

 

Arrays

Array

ArrayList

基本概念

(1)是java.util.Arrays类,是一个继承Object类。

(2) 是工具类,能方便地操作数组,它提供的所有方法都是静态的;

(3)Arrays是操作数据对象的,即对整个数组的操作

 (1)Array类是Java.lang.reflect包中的一个类,该类提供了动态创建和访问java数组的方法。

(2) Array经常表示数组,Array是用来装对象的;

容量固定,无法动态改变

(3) 允许在执行 get 或 set 操作期间进行扩展转换.

(4)侧重对基本类型数组单个元素操作

(1) ArrayList:容量可动态增长;但牺牲效率,称作动态数组。

(2) ArrayList是Array的复杂版本,ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。

(3)实现了Collection和List接口。

常用方法

常用方法:

boolean equals(array1,array2)-比较两个数组是否相等

void sort(array):对数组array的元素进行升序排列

String toString(array):数组array转换成字符串

void fill(array,val):把数组array所有元素都赋值为val

copyOf(array,length):数组array复制成一个长度为length的新数组

int binarySearch(array,val):查询元素值val在数组array中的下标(采用的二分查找法)。

没有提供删除方法

Array.getInt(int arrayname, index)-在int类型数组中获取数组下标为index的数据;

Array.getDouble(double arrayname, index)

等等

——

一系列静态set和get方法

public intsize();返回此列表中的元素数。

public boolean isEmpty();如果此列表中没有元素,则返回 true

public boolean contains(Object o);如果此列表中包含指定的元素,则返回 true

public int indexOf(Object o)

返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。

public int lastIndexOf(Object o)

返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。

public Object[] toArray();

按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;

public void add(int index, E element)将指定的元素插入此列表中的指定位置。

public boolean remove(Object o)

 移除此列表中首次出现的指定元素(如果存在)。

等等

效率

 

Array(数组)通常意义上讲只是一个单纯的线性序列,又基于Native,凭此它的效率历来便号称Java中最高。所以通常我们也都承认Java中效率最高的存储方式就是使用数组。

效率最高

数组扩容时:

这是对ArrayList效率影响比较大的一个因素。

每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。

原创粉丝点击