当前位置: 代码迷 >> Java相关 >> 关于数组反转! 方法和思想
  详细解决方案

关于数组反转! 方法和思想

热度:170   发布时间:2011-04-21 18:04:50.0
关于数组反转! 方法和思想
源代码如下红色代码区! 知道的说下数组反转的思想! 我看不懂代码!该数组为手动增加元素!

class Array{        // 表示数组
    private int temp[] ;        // 整型数组
    private int foot ;    // 定义添加位置
    public Array(int len){
        if(len>0){
            this.temp = new int[len] ;
        }else{
            this.temp = new int[1] ;    // 最少维持空间是1个
        }
    }
    public boolean add(int i){    // 增加元素
        if(this.foot<this.temp.length){    // 还有空间
            this.temp[foot] = i ;    // 增加元素
            this.foot ++ ;// 修改脚标
            return true ;
        }else{
            return false ;
        }
    }
    public int[] getArray(){
        return this.temp ;
    }
};
class ReverseArray extends Array{    // 反转操作类
    public ReverseArray(int len){
        super(len) ;
    }
    public int[] getArray() {
        int t[] = new int[super.getArray().length] ;    // 开辟一个新的数组
        int count = t.length - 1 ;
        for(int x=0 ;x<t.length;x++){
            t[count] = super.getArray()[x] ;    // 数组反转
            count-- ;
        }
        return t ;
    }
};
public class ArrayDemo{
    public static void main(String args[]){
        ReverseArray a = null ;    // 声明反转类对象
        a = new ReverseArray(5) ;    // 开辟5个空间大小
        System.out.print(a.add(23) + "\t") ;
        System.out.print(a.add(21) + "\t") ;
        System.out.print(a.add(2) + "\t") ;
        System.out.print(a.add(42) + "\t") ;
        System.out.print(a.add(5) + "\t") ;
        System.out.print(a.add(6) + "\t") ;
        print(a.getArray()) ;

    }
    public static void print(int i[]){    // 输出数组内容
        for(int x=0;x<i.length;x++){
            System.out.print(i[x] + "、") ;
        }
    }
};
搜索更多相关的解决方案: 源代码  空间  元素  

----------------解决方案--------------------------------------------------------
从原数组的尾到头取数放入目的数组的头到尾。。。
super.getArray() 表示调用父类的方法;
super()用父类构造方法初始化。。。


----------------解决方案--------------------------------------------------------
程序代码:
class ReverseArray extends Array
{    // 反转操作类
    public ReverseArray(int len)
    {
        super(len);//调用父类的构造函数
    }
    public int[] getArray()
    {    //super.getArray() 返回的为父类的私有成员temp的应用
        
//super.getArray().length   间接等价 temp.length
        int t[] = new int[super.getArray().length];// 开辟一个新的数组
        
//int count = t.length - 1;
      
        for(int x=0 ;x<t.length; x++)
        {//改成这样子就比较直观
            t[t.length-1-x] = super.getArray()[x] ;    // 数组反转
        }//super.getArray()[x]  间接等价 temp[x]
      
        return t ;
    }
}

----------------解决方案--------------------------------------------------------
  相关解决方案