老生常谈Java中List与ArrayList的区别

 更新时间:2022年08月31日 14:55:35   作者:ycylikestuty  
大家都知道List是接口,ArrayList是List接口的一个实现类,接下来通过本文给大家介绍Java中List与ArrayList的区别,需要的朋友可以参考下

1 概念方面

List是接口,ArrayList是List接口的一个实现类

2 初始化方面

2.1 List

2.1.1 错误写法

List list=new List();//因为List是接口,不能创建实例对象

2.1.2 正确写法

2.1.2.1 不指定存取数据类型

List list=new ArrayList();
//此时list存取的数据类型是不固定的,可以存取String,Integer甚至Object类型
list.add(1);
list.add("dda");
for(Object x:list){
    System.out.println(x);
}

2.1.2.2 指定存取数据类型

List<Integer> list=new ArrayList<>();
//或者写成List<Integer> list=new ArrayList<Integer>();
//不过一般采用第一种写法
list.add(2);
list.add(12);
for(Integer x:list){
    System.out.println(x);
}

2.2 ArrayList

初始化和List差不多,只是把List改为了ArrayList

2.2.1 不指定存取数据类型

ArrayList arrayList=new ArrayList();
arrayList.add(1);
arrayList.add("dda");
for(Object x:arrayList){
    System.out.println(x);
}

2.2.2 指定存取数据类型

ArrayList<String> arrayList=new ArrayList<>();
arrayList.add("dd");
arrayList.add("yyds");
for(String x:arrayList){
    System.out.println(x);
}

2.3 区别

  • List list=new ArrayList()创建了一个ArrayList实现类的对象后把它上溯到了List接口。此时它就是一个List对象,所以不能调用ArrayList类有的,但是List接口没有的属性和方法,只能调用两者共有的属性和方法
  • 而ArrayList list=newArrayList()创建了一个ArrayList实现类的对象,所以保留了ArrayList的所有属性和方法
ArrayList<Integer> arrayList=new ArrayList<>();
List<Integer> list=new ArrayList<>();
arrayList.trimToSize();
//list.trimToSize();写法错误
//因为List没有trimToSize方法

到此这篇关于Java中List与ArrayList的区别的文章就介绍到这了,更多相关java List和ArrayList的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA项目重命名的操作

    IDEA项目重命名的操作

    这篇文章主要介绍了IDEA项目重命名的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java泛型可行与不可行的原理示例解析

    Java泛型可行与不可行的原理示例解析

    这篇文章主要为大家介绍了Java泛型可行与不可行的原理示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加
    2023-05-05
  • 利用MultipartFile实现文件上传功能

    利用MultipartFile实现文件上传功能

    这篇文章主要为大家详细介绍了利用MultipartFile实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解Spring如何避免被JVM 垃圾回收

    详解Spring如何避免被JVM 垃圾回收

    如果Spring 被回收掉,Spring管理的bean全部会被回收,那我们的Java应用不就被一锅端了吗?所以本文小编将和大家一起聊聊Spring如何避免被JVM垃圾回收,需要的朋友可以参考下
    2023-11-11
  • Java 生成带Logo和文字的二维码

    Java 生成带Logo和文字的二维码

    这篇文章主要介绍了Java 生成带Logo和文字的二维码的方法,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • IDEA提示:Boolean method ‘xxx‘ is always inverted问题

    IDEA提示:Boolean method ‘xxx‘ is always&nb

    这篇文章主要介绍了IDEA提示:Boolean method ‘xxx‘ is always inverted问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • java并发编程Lock锁可重入性与公平性分析

    java并发编程Lock锁可重入性与公平性分析

    这篇文章主要为大家介绍了java并发编程Lock锁可重入性与公平性分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • SpringBoot使用Thymeleaf模板引擎访问静态html的过程

    SpringBoot使用Thymeleaf模板引擎访问静态html的过程

    这篇文章主要介绍了SpringBoot使用Thymeleaf模板引擎访问静态html的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 一文讲解如何解决Java中的IllegalArgumentException异常

    一文讲解如何解决Java中的IllegalArgumentException异常

    这篇文章主要给大家介绍了关于如何解决Java中IllegalArgumentException异常的相关资料,IllegalArgumentException是Java中的一个标准异常类,通常在方法接收到一个不合法的参数时抛出,需要的朋友可以参考下
    2024-03-03
  • SpringBoot Web依赖教程

    SpringBoot Web依赖教程

    这篇文章主要介绍了SpringBoot Web依赖教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论