黑马程序员技术交流社区
标题:
ArrayList问题?
[打印本页]
作者:
史小兵
时间:
2012-10-30 23:38
标题:
ArrayList问题?
这是自己模仿java写的一个ArrsyList的一个类只给出了两个方法,一个add()hesize()方法
public class ArrayList {
Object[] array=new Object[20];
static int index=0;
public void add(Object o){
if(index==array.length){
Object[] newArray=new Object[array.length * 2];
// 直接将一个数组中的东西,一次性的考进到一个新的数组之中!
System.arraycopy(array, 0, newArray, 0, array.length);
array=newArray;
}
array[index]=o;
index++;
}
public int size(){
return index;
}
}
这是自己写的测试程序
public class Test {
public static void main(String[] args){
ArrayList list=new ArrayList();
for(int i=25;i<=0;i--){
list.add(new Object());
}
// 在此处为什么是输出的0?每次向数组中添加新的值时index都会自加一的啊!
System.out.println(list.size());
}
}
但是在这个程序中就可以正常输出
public class Test {
public static void main(String[] args){
ArrayList list=new ArrayList();
for(int i=0;i<=25;i++){
list.add(new Object());
}
// 在此处为什么是输出的0?每次向数组中添加新的值时index都会自加一的啊!
System.out.println(list.size());
}
}
看了,半天源码还是有些迷惑!
作者:
徐强
时间:
2012-10-31 13:07
public static void main(String[] args){
ArrayList list=new ArrayList();
for(int i=25;i>=0;i--){
list.add(new Object());
System.out.println("--");
}
// 在此处为什么是输出的0?每次向数组中添加新的值时index都会自加一的啊!
System.out.println(list.size());
}
复制代码
这样就对了,你把for循环的条件写错了, for(int i=25;i<=0;i++) 这个循环根本就进不去,所有就没有添加对象进list,list大小当然是0了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2