数组操作(进阶)

class Array{
    private int data[];
    private int foot=0;
    public Array(int len){//设置数组长度
        if(len>0){
            this.data=new int[len];
        }else{
            this.data=new int[1];
        }
    }
    public void inc(int num){//添加数组数据
     int newdata[]=new int[this.data.length+num];
     System.arraycopy(this.data, 0, newdata, 0, this.data.length);
     this.data=newdata;
    }
    public boolean Add(int num){//增加数组长度

        if(this.foot>=this.data.length){
            return false;
        }
        this.data[this.foot++]=num;
        return true;
        }
    public int[] getData(){//获得数组
        return this.data;
    }
    public int getMax(int data[]){//获得数组最大值
        int max=data[0];
        for(int a=0;a<data.length;a++){
            if(max<data[a]){
                max=data[a];
            }
        }

        return max;
    }
    public int getMin(int data[]){//获得数组最小值
        int min=this.data[0];
        for(int a=0;a<data.length;a++){
            if(min>data[a]){
                min=data[a];
            }
        }

        return min;
    }
}
class Sortarray extends Array{

    public Sortarray(int len) {
        super(len);
        // TODO Auto-generated constructor stub
    }


}
class ReverseArray extends Array{


    public ReverseArray(int len) {
        super(len);
        // TODO Auto-generated constructor stub
    }
    public int[] getData(){//子类覆写getData倒置数组
        int head=0;
        int tail=super.getData().length-1;
        int center=super.getData().length/2;
        for(int x=0;x<center;x++){
            int temp=super.getData()[head];
            super.getData()[head]=super.getData()[tail];
            super.getData()[tail]=temp;
            head++;
            tail--;
        }
        return super.getData();
    }

}
class sort extends Array{

    public sort(int len) {
        super(len);
        // TODO Auto-generated constructor stub
    }
    public int[] getData(){//按大小顺序排列数组
        int x[]=super.getData();
        for(int a=0;a<x.length-1;a++){
            for(int b=0;b<x.length-a-1;b++){
                if(x[b]>x[b+1]){
                    int temp=x[b];
                    x[b]=x[b+1];
                    x[b+1]=temp;
                }

            }
            }for(int b=0;b<x.length;b++){
                super.getData()[b]=x[b];
        }

        return super.getData();
    }

}
class sort1 extends Array{

    public sort1(int len) {
        super(len);
        // TODO Auto-generated constructor stub
    }
    public int[] getData(){//从大到小排列数组
        for(int x=0;x<super.getData().length-1;x++){
            for(int y=0;y<super.getData().length-x-1;y++){
                int temp=super.getData()[y];
                if(super.getData()[y]<super.getData()[y+1]){
                    super.getData()[y]=super.getData()[y+1];
                    super.getData()[y+1]=temp;
                }
            }
        }

        return super.getData();
    }

}

public class test {
   public static void main(String[] args) {
       sort1 arr=new sort1(5);      
        System.out.println(arr.Add(2));
        System.out.println(arr.Add(1));
        System.out.println(arr.Add(3));
        System.out.println(arr.Add(4));
        System.out.println(arr.Add(5));
        System.out.println(arr.Add(5));
        arr.inc(3);
        System.out.println(arr.Add(8));
        System.out.println(arr.Add(6));
        System.out.println(arr.Add(7));
        System.out.println(arr.getMax(arr.getData()));
        System.out.println(arr.getMin(arr.getData()));
        int result[]=arr.getData();
        for(int x=0;x<result.length;x++){
            System.out.print(result[x]+" ");
        }
        System.out.println();
        }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值