Java中数组,List和Arraylist

来源:互联网 发布:玩游戏网络延迟不稳定 编辑:程序博客网 时间:2024/05/02 02:03

最近我在看Java的基础知识,对于自己经常使用的数组,List和Arraylist的区别在此做一个笔记。

数组

首先数组是大小固定的,在一开始就是指定了相应的数组的容量。数组在内存中是连续存储的,所以根据索引操作的速度比较快。但是插入数据的效率就没有List类快。

List

List是接口,List特性就是有序,会确保以一定的顺序保存元素。在对List的使用中,List不能被构造,只能像下面那样使用:

List list = new ArrayList();

这样使用的话,List中没有而ArrayList中有的方法将不能被list对象使用。这种用法属于Java的多态特性。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的该同名方法。
List接口继承自Collection接口

public interface List<E> extends Collection<E> {

Arraylist

ArrayList是List的实现类。
如下:

public class ArrayList<E> extends AbstractList<E> implements Cloneable, Serializable, RandomAccess {
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {

如果你这样定义:

ArrayList myList = new ArrayList();

那么myList是可以使用ArrayList中的所有方法(与上文对比)。

以上是我对这三者特点的一个简单的记录,希望对自己然后查阅提供帮助。

1 0