数组操作(进阶)

来源:互联网 发布:fashionphile 淘宝 编辑:程序博客网 时间:2024/05/21 15:04
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();        }}