日期:2014-05-20  浏览次数:20772 次

调用size属性,如何去得到我想要的元素的个数的?
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];
    }
}