| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1553 人关注过本帖
标题:关于数组反转! 方法和思想
只看楼主 加入收藏
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
结帖率:90%
收藏
已结贴  问题点数:30 回复次数:2 
关于数组反转! 方法和思想
源代码如下红色代码区! 知道的说下数组反转的思想! 我看不懂代码!该数组为手动增加元素!

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] + "、") ;
        }
    }
};
搜索更多相关主题的帖子: 源代码 空间 元素 
2011-04-21 18:04
llooppzhang
Rank: 7Rank: 7Rank: 7
来 自:江苏
等 级:黑侠
威 望:5
帖 子:308
专家分:518
注 册:2009-10-18
收藏
得分:15 
从原数组的尾到头取数放入目的数组的头到尾。。。
super.getArray() 表示调用父类的方法;
super()用父类构造方法初始化。。。

2011-04-21 20:53
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:15 
程序代码:
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 ;
    }
}
2011-04-21 22:25
快速回复:关于数组反转! 方法和思想
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012753 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved