public class MyArrayList {
private Object[] array; // 用Object数组来保存数据
private int size; // 定义列表的元素的个数
public MyArrayList(MyArrayList c) {
array = new Object[c.size];
for (int i = 0; i < c.size; i++) {
array[i] = c.array[i];
}
size = c.size;
}
}
个人觉得当传入自定义类型MyArrayList c的时候,调用size属性,但是size属性并没有描述与MyArrayList 自身的相关操作,也就是调用size属性,如何去得到我想要的元素的个数的?
------解决方案--------------------------------------------------------
array = new Object[c.size];
中的c参数有值吗?好像你一直都没有没给哦。是一个NULL值,所以肯定得不到的。
public class a{
public static void main(String args[]){
Object[] obj = new Object[10];
int sum=0;
sum = obj.length;
System.out.println(sum);
}
}
数组是用length获取到长度的,List才是用size获取长度哦,你是不是想错了呢?
------解决方案--------------------------------------------------------
- Java code
public class MyArrayList { private Object[] array; // 用Object数组来保存数据 private int size; // 定义列表的元素的个数 private ArrayList list = new ArrayList(); //先用List保存用户传过来的MyArrayLIst c public MyArrayList(MyArrayList c) { for (int i = 0; i < c.size; i++) { Object obj = c.array[i]; if(obj 条件语句){ //根据条件判断是否保存 list.add(obj); } } array = list.toArray(); //调用list的toArray方法返回一个Object数组 size = array.length; //将array数组的长度赋给array }}
------解决方案--------------------------------------------------------
- Java code
public class MyArrayList { private Object[] array; // 用Object数组来保存数据 private int size; // 定义列表的元素的个数 public MyArrayList(MyArrayList c) { size = c.size(); //调用size()方法,size是private属性,不能直接访问 array = new Object[size]; for (int i = 0; i < size; i++) { array[i] = c.get(i); //array是private属性,不能直接访问 } } public int size() {return this.size();} //追加一个size()方法 public Object get(int index) { //追加一个获取元素的方法 if (index >= size) {...} return array[index]; }}