黑马程序员-排序和反转

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


      定义一个整型数组类,要求包含构造方法,增加数据及输出数据的成员方法,并利用数组实现动态内存分配并定义一下两个类。


package com.itheima;

class Array {
    private int temp[]; // 定义一个整型数组,此数组大小由外部决定
    private int foot; // 定义数组添加的下标

    public Array(int len) { // 数组的大小由外部决定
        if (len > 0) { // 判断传入的长度是否大于0
            this.temp = new int[len]; // 根据传入的大小开辟空间
        } else {
            this.temp = new int[1]; // 最小维持一个空间
        }
    }

    public boolean add(int i) {
        if (this.foot < this.temp.length) { // 判断数组是否已满。如果temp=5的话,就是说数组中该放第6个数了。当foot
                                            // 和temp.length相同时说明数组满了
            this.temp[foot] = i; // 没有存满就继续添加
            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; // 【】里边的数比length小1
        for (int i = 0; i < t.length; i++) {
            t[count] = super.getArray()[i]; // 将数组反转
            count--;
        }
        return t;
    }
}

class SortArray extends Array { // 定义排序类
    public SortArray(int len) { // 调用父类中的构造方法
        super(len); // 为数组开辟大小
    }

    public int[] getArray() { // 覆写得到的数组方法,排序返回
        java.util.Arrays.sort(super.getArray()); // 排序操作
        return super.getArray();
    }
}

public class MyDemo {
    public static void main(String[] args) {
        ReverseArray ra = new ReverseArray(5); // 实例化反转对象
        System.out.print(ra.add(12) + "\t"); // 添加内容
        System.out.print(ra.add(22) + "\t");
        System.out.print(ra.add(32) + "\t");
        System.out.print(ra.add(42) + "\t");
        System.out.print(ra.add(52) + "\t");
        System.out.print(ra.add(62) + "\t"); // 开辟5个空间,放入第6个时返回false
        print(ra.getArray()); // 输出内容

        /*
         * SortArray sa=new SortArray(5); System.out.print(sa.add(12)+"\t");
         * System.out.print(sa.add(22)+"\t"); System.out.print(sa.add(78)+"\t");
         * System.out.print(sa.add(42)+"\t"); System.out.print(sa.add(52)+"\t");
         * System.out.print(sa.add(62)+"\t"); print1(sa.getArray());
         */
    }

    public static void print(int i[]) {
        for (int x : i) {
            System.out.print(x + "\t");
        }
    }
    /*
     * public static void print1(int j[]){ for(int y:j){
     * System.out.print(y+"\t"); } }
     */
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值