List和ArrayList的区别

简介: List和ArrayList的区别

List和ArrayList的区别

List是一个接口,而ArrayList是一个类,它实现了List接口。

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

因为List是一个接口,接口不能被实例化,所以:List list=new List()这种写法是错误的,

ArrayList<Object> list = new ArrayList<>();
        List<Object> list1 = new List<>();   //此处会报错
        List<String> list2 = new List<String>();  //此处会报错

ArrayList就可以被构造。

List list = new ArrayList();

这句创建了一个ArrayList的对象后把向上转型成了List。此时它是一个List对象了,父类的引用指向子类对象,那么父类就只能访问与子类中

共有的属性和方法。

如下:

List list3 = new ArrayList();
    list3.ensureCapacityInternal();  //此处调用ArrayList中私有的方法。此处会报错
    list3.isEmpty();  //此处isEmpty()  方法。子类与父类共有的方法。  不会报错
ArrayList list=new ArrayList();

创建一对象则保留了ArrayList的所有属性,ArrayList作为对象引用当然就可以调用其中所有方法及属性。

一般情况下如果是用到了第二种定义方法,就说明一定是用到了ArrayList特有的方法或属性。

2,两者都是集合

ArrayList :类型不安全,因为加入的数据为object类型,所以需要装箱与拆箱,效率较低。

List:声明时就决定了类型,所以是类型安全的,省掉了装箱与拆箱的过程,效率比ArrayList要高。

ArrayList就是一个List而已。

泛型集合的优势就是类型安全和无装箱。


目录
相关文章
|
3月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
1月前
|
设计模式 安全 容器
数据结构第一篇【探究List和ArrayList之间的奥秘 】
数据结构第一篇【探究List和ArrayList之间的奥秘 】
23 5
|
3月前
|
存储 Java 索引
|
3月前
|
Java
【Java基础面试四十六】、 List<? super T>和List<? extends T>有什么区别?
这篇文章阐述了Java泛型中的List<? super T>和List<? extends T>的区别,解释了通配符的使用规则,以及Java泛型设计原则确保了编译时无警告则运行时无ClassCastException异常。
|
4月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
5月前
|
存储 Python
Python中list, tuple, dict,set的区别和使用场景
Python中list, tuple, dict,set的区别和使用场景
183 2
|
5月前
|
Java 索引
JavaSE——集合框架一(3/7)-List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
JavaSE——集合框架一(3/7)-List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
44 2
|
5月前
|
存储 安全 程序员
老程序员分享:List、Map、Set之间的联系与区别:
老程序员分享:List、Map、Set之间的联系与区别:
|
5月前
|
Java 索引
Java List实战:手把手教你玩转ArrayList和LinkedList
【6月更文挑战第17天】在Java中,ArrayList和LinkedList是List接口的实现,分别基于动态数组和双向链表。ArrayList适合索引访问,提供快速读取,而LinkedList擅长插入和删除操作。通过示例展示了两者的基本用法,如添加、访问、修改和删除元素。根据场景选择合适的实现能优化性能。
52 0
|
5月前
|
Java 开发者 索引
Java List全攻略:从ArrayList到LinkedList,一网打尽!
【6月更文挑战第17天】Java List详解:ArrayList依赖动态数组,擅长随机访问和遍历,适合少次插入删除;LinkedList基于双向链表,插入删除高效,尤其在头尾操作,但随机访问慢。选择取决于应用场景,理解特性以优化代码。探索ArrayList与LinkedList,提升编程效率!
61 0

热门文章

最新文章