老生常谈Java中List与ArrayList的区别
作者:ycylikestuty 发布时间:2023-03-26 19:52:33
标签: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方法
来源:https://www.cnblogs.com/ycylikestudy/p/16643017.html


猜你喜欢
- 一、创建数据库 1、新建数据库帮助类 包名——右击—&am
- Flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由。一、命名路由传参应用入口处定义路由表class MyApp exten
- 介绍:unity界面开发,会用到很多导航的按钮,他们是公共的,单击其中一个按钮,显示对应的界面。unity中,UGUI自带Toggle组件,
- Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。而我们知道比特就是0和1,那么,位操作就是对这些数据进行基
- Android开发中,当一个页面存放的控件超出屏幕时,通常需要使用ScrollView来包裹布局。这样用户可以通过手指的滑动来查看超出屏幕的
- 这篇文章主要介绍了springboot自定义异常视图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 想必大家都知道,国内的Android应用基本都是免费的
- 前言我们从以下几个方面研究:SpringBoot的启动依赖启动器starter有什么作用启动引导类是怎么运行的内置的tomcat服务器原理p
- 前言之前介绍了 Animatable 动画以及其 animateTo和 snapTo两个开启动画 api 的使用,实际上 Animatabl
- java集合的工具类Collections中提供了两种排序的方法,分别是:Collections.sort(List list)Collec
- 一、建立一个maven工程 pom类型统一管理依赖以及版本号子工程不会使用所有的定义的依赖子工程使用依赖时无需指定版本号其pom.xml&l
- 作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三
- WebService是一种跨编程语言和跨操作系统平台的远程调用技术所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一
- 最近在项目中用到一个比较有意思的阴影特效从上面的效果图上可以发现在图片的右、下有一个阴影的特效,通过这个阴影效果明显会使得这个提示文本有一种
- 一,栈1,概念在我们软件应用 ,栈这种后进先出数据结构的应用是非常普遍的。比如你用浏 览器上网时不管什么浏览器都有 个"后退&qu
- 本篇将从以下几个方面讲述反射的知识:class 的使用方法的反射构造函数的反射成员变量的反射一、什么是class类在面向对象的世界里,万物皆
- 拆分实现流程请看下面这张图首先我们得对线程池进行一个功能拆分Thread Pool 就是我们的线程池,t1,t2,t3代表三个线程Block
- 在Java中当try、finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大家众说纷纭,有的说
- 目录一、字节码文件 与 JVM二、字节码文件示例三、字节码文件二进制结构分析1、魔数2、次版本号3、主版本号4、常量池个数总结一、字节码文件
- 本文实例讲述了C#实现日期格式转换的公共方法类。分享给大家供大家参考,具体如下:这里演示了C#中一些日期格式的转换。创建公共方法类(Util