List和ArrayList的区别
2016-06-11 13:32
183 查看
List和ArrayList的区别
List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法
List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。
这是一个例子:
import java.util.*;
public class TestList{
public static void main(String[] args){
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
list.trimToSize(); //错误,没有该方法。
arrayList.trimToSize(); //ArrayList里有该方法。
}
}
编译一下就知道结果了。
如果这个样子:
List a=new ArrayList();
则a拥有List与ArrayList的所有属性和方法,不会减少
如果List与ArrayList中有相同的属性(如int i),有相同的方法(如void f()),
则a.i是调用了List中的i
a.f()是调用了ArrayList中的f()
list中的remove();
可以传入Object,或者index,
但是不能是基本类型。
List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法
List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。
这是一个例子:
import java.util.*;
public class TestList{
public static void main(String[] args){
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
list.trimToSize(); //错误,没有该方法。
arrayList.trimToSize(); //ArrayList里有该方法。
}
}
编译一下就知道结果了。
如果这个样子:
List a=new ArrayList();
则a拥有List与ArrayList的所有属性和方法,不会减少
如果List与ArrayList中有相同的属性(如int i),有相同的方法(如void f()),
则a.i是调用了List中的i
a.f()是调用了ArrayList中的f()
list中的remove();
可以传入Object,或者index,
但是不能是基本类型。
相关文章推荐
- 数据库操作中 pstmt.setString(1,id) ; 是什么意思 那个“1”指什么?
- LINUX中驱动异步通知应用程序的方法
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- R语言︱线性混合模型理论与案例探究(固定效应&随机效应)
- Remove Duplicates from Sorted List
- js获取客户端IP及地理位置
- 提高PHP代码执行效率小结
- HDU 5438 Ponds
- 开发故事中的各种小虫(持续更新)
- PAT 1050.螺旋矩阵(25)
- hadoop hdfs运行机制
- 命令模式
- 关于中值滤波算法,以及C语言实现
- Android视图的绘制流程(下)——View的Layout与Draw过程
- 【Dongle】【VS】之窗体异常
- 为什么手机不能既开WiFi又开热点?
- Android程序安装后图标不显示
- Git 常用命令速查
- JavaScript的数据类型和变量声明以及js的语句
- HDU 2141 Can you find it? (二分)