【Array ArrayList LinkList的区别剖析】

Array、ArrayList、LinkList之间的区别:Array、ArrayList、LinkList均属于泛型的范畴,都用来存放元素,主要区别是Array是一个固定大小的容器,底层采用的是线性连续空间来存放元素,ArrayList同样也是一个容器,但是其大小不固定,底层采用的也是线性连续空间来存放元素,当线性连续空间不足以存放元素时,又重新申请一片更大的空间(大约是原空间的2倍),将原有的内容移过去,因此从这里可以看出,Array要比ArrayList的效率高,因为不需要重新申请空间,LinkList也是一个容器,但底层采用的是链表,因此不存在扩容问题,除非整个内存空间都不足了,由于采用的是链表,因此查找效率也比较低,但删除效率比较高。

  Array测试源代码(其实这个压根没必要测试,大家都用过J):

  [java]

  //来个复杂点的吧

  String [][]array=new String[5][];

  //再加个for循环,每个小数组又是一个小数组

  for(int i=0;i<5;i++){

  array[i]=new String[i+1];

  }

  //从上面的代码中,可以看出的是数组的大小一旦确定,其内存空间的布局也就

  //确定了,大小也就确定了

  //来个复杂点的吧

  String [][]array=new String[5][];

  //再加个for循环,每个小数组又是一个小数组

  for(int i=0;i<5;i++){

  array[i]=new String[i+1];

  }

  //从上面的代码中,可以看出的是数组的大小一旦确定,其内存空间的布局也就

  //确定了,大小也就确定了上面的代码,太简单了,每个Java书上都有,没有的,扔了它吧

  ArrayList的测试代码:

  [java]

  //声明一个数组对象,采用的是ArrayList,从这里可以看出的是,ArrayList里可以存放任意

  //类型,这也就是泛型

  ArrayList<String> array=new ArrayList<String>();

  //在这个数组对象里面存放元素

  array.add("test1");

  array.add("test2");

  //将值打印出来

  for(int i=0;i<array.size();i++)

  System.out.println(array.get(i));

  //声明一个数组对象,采用的是ArrayList,从这里可以看出的是,ArrayList里可以存放任意

  //类型,这也就是泛型

  ArrayList<String> array=new ArrayList<String>();

  //在这个数组对象里面存放元素

  array.add("test1");

  array.add("test2");

  //将值打印出来

  for(int i=0;i<array.size();i++)

  System.out.println(array.get(i));

posted on 2013-09-24 09:27  挖掘者者者  阅读(280)  评论(0编辑  收藏  举报