java基础学习

Array 与ArrayList 与List 的前世今生

2018-12-15  本文已影响7人  迷糊银儿

一、既生瑜(Array)何生亮(ArrayList)

  1. 数组在声明的时候必须说明它所存储的元素类型与数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。
  2. 数组在插入、删除元素应用场景下的效率确实差强人意。

基于上述数组的缺点,ArrayList登上历史舞台,Array的缺点也自然而然成了ArrayList的优点

二、ArrayList

使用建议

基于效率和类型检验,应尽可能使用Array,无法确定数组大小时才使用ArrayList!

三、关List什么事


基于上述ArrayList的硬伤,又出现了范型的概念。而而List类是ArrayList类的泛型等效类。

四、 List

它的大部分用法都与ArrayList相似,最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。

List<int> list = new List<int>();
//新增数据
 list.Add(123);
//修改数据 
list[0] = 345;
//移除数据
list.RemoveAt(0);

如果我们往List集合中插入string字符"hello world",IDE就会报错,且不能通过编译。这样就避免了前面讲的类型安全问题与装箱拆箱的性能问题了。

List list;     //正确   list=null; 
List list=new List();    //   是错误的用法

List<int> list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。 而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

上一篇下一篇

猜你喜欢

热点阅读