黑马程序员技术交流社区
标题:
自己总结的关于一点ArrayList和一般数组的区别
[打印本页]
作者:
系磊
时间:
2012-7-31 17:20
标题:
自己总结的关于一点ArrayList和一般数组的区别
ArrayList
ArrayList<String> myList = new
ArrayList<String>();
一般数组
String [] myList = new String[2];
ArrayList
String a = new String("hello");
myList.add(a);
一般数组
String a = new String ("hello");
myList[0] = a;
ArrayList
String b = new String ("haha");
myList.add(b);
一般数组
String b = new String("haha");
myList[1] = b;
ArrayList
int theSize = myList.size();
一般数组
int theSize = myList.length;
ArrayList
Object o = myList.get(1);
一般数组
String o = myList[1];
ArrayList
myList.remove(1);
一般数组
myList[1] = null;
ArrayList
boolean isIn = myList.contains|(c);
一般数组
boolean isIn = false;
for(String item : myList)
{
if(c.equals(item))
{
isIn = ture;
break;
}
}
1.一般数组在创建时就必须要确定大小但是对ArrayList来说,你只需要创建出此类
型的对象就行,它不需要指定大小,因为它会在加入或者删除元素时自动调整大小
new String[2] //指定大小
new ArrayList<String>() //不需要指定大小
2.存放对象给一般数组时必须指定位置(必须要指定介于0到length小1之间的数字)
myList[1] = b; 指定索引值
如果索引值超越了数组的限制,程序会在执行期出现错误
使用ArrayList时,你可以用add(Int,Object)这个形式的方法来指定索引值,或者
使用add(Object)的形式来给他自行管理大小
3.一般数组使用特殊的语法
但是ArrayList是个普通对象,所以不会有特殊的语法
myList[1] [方括号]是只用在数组上的特殊语法
4.在Java5.0中的ArrayList是参数化的(parameterized)
虽然ArrayList不像一般数组有特殊的语法,但是他们在java5.0中有比较特殊的东
西——参数化类型.
ArrayList<String> <String>是类型参数.这代表String的集合,就是说
ArrayList<Dog>代表Dog的集合.
在使用ArrayList时,你只是在运用ArrayList类型的对象,因此就跟运用其他的对象一样,可以使用“.”运算符来调用它的方法
在使用一般数组时,可以使用特殊的数组语法来操作,这样的语法只能用在数组上,虽说数组也是对象,但是有自己的规则,我们无法调用它的方法,最多只能存取它的length实例变量.
有不足的希望大家补充下,谢谢了
作者:
hello world
时间:
2012-7-31 20:56
个人建议:对数组和ArrayList的总结只是看到表面了,要想真的弄清楚两者,就看看ArrayList的源代码吧,底层的实现就是数组,要从底层原理上去了解,在总结。
作者:
系磊
时间:
2012-7-31 22:38
谢谢了0.0.0.0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2