LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1428|回复: 2

在类中初始化数组遇到的问题

[复制链接]
发表于 2006-9-7 20:56:12 | 显示全部楼层 |阅读模式
/** Creates a new instance of Sort */
    private int length;//需要排列的数组尺寸
    private int [] Array=new int[length];//需要排列的数组
   
    public Sort(int arrLength) {//传入需要排序的数组的尺寸
        this.length=arrLength;
    }
   
    public void getArrData(int [] InArray){//传入需排列的数组元素
        try{
            //System.arraycopy(InArray,0,this.Array,0,InArray.length);
            for(int i=0;i<this.length;i++){
                Array=InArray;
            }
        }
        catch(Exception e){
            System.err.print(e+"出界 ?");
        }
    }

在执行getArrData()方法时,终是会跑出越界异常,查资料说,java先初始化length为0,再初始化Array,于是Array的长度为0,再执行构造方法,所以getArrDate()会溢出

请教:如何实现我想要的功能呢?(动态创建数组)
发表于 2006-9-8 07:16:31 | 显示全部楼层
使用ArrayList,不用Array。ArrayList的好处是他的大小是可以随时变的,定义的时候不需要指定大小。
// import 你自己写了

private ArrayList<Integer> aList = new ArrayList<Integer>();


public void getArrData(int [] inArray){
    aList.addAll(Arrays.asList(inArray));
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-8 11:45:22 | 显示全部楼层
问题已解决,在构造方法里分配数组就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表