Demo(动态数组的添加输出子类继承的排序反转)


 /*
1.定义一个数组(整型),要求实现数据的添加,数组内容的输出,数组大小的动态输出
2.写一个子类继承,对实现输出的数组实现进行排序
3.写一个子类继承,对实现输出的数组进行反转
 */
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 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 void inc(int num){
int newData[]=new int[num+this.data.length];
System.arraycopy(this.data,0,newData,0,this.data.length);
this.data=newData;// 改变原始数组指向
} 
}
//子类继承处理字符串排序问题
class SortArray extends Array{
public SortArray(int num){
super(num); //父类没有无参构造方法,这里必须调用父类的 构造方法
}
// 取得数组数据,此方法为父类方法,对其进行覆写
public int[] getData(){
for(int x=0;x<super.getData().length-1;x++){
for(int y=0;y<super.getData().length-1-x;y++){
if(super.getData()[y]>super.getData()[y+1]){
int temp=super.getData()[y];
super.getData()[y]=super.getData()[y+1];
super.getData()[y+1]=temp;
}
}
}


//System.util.Arrays.sort(super.getData());
return super.getData();
}
}


//子类继承字符串反转
class ReverseArray extends Array{
public ReverseArray(int num){
super(num);

}
public int[] getData(){
int head =0;
int tail=super.getData().length-1;
int mid=super.getData().length/2;
for (int x=0;x<mid ;x++ )
{
int temp=super.getData()[head];
super.getData()[head]=super.getData()[tail];
super.getData()[tail]=temp;
head++;
tail--;
}
return super.getData();
}


}




public class TestDemo{
public static void main(String args[]){
SortArray arr=new SortArray(5);
//ReverseArray=arr=new ReverseArray(5);


System.out.println(arr.add(1));
System.out.println(arr.add(10));
System.out.println(arr.add(21));
System.out.println(arr.add(23));
System.out.println(arr.add(4));


arr.inc(3);//扩充数据
System.out.println(arr.add(42));
System.out.println(arr.add(23));
System.out.println(arr.add(12));
//用于接受数据
int result[]=arr.getData();
for(int x=0;x<result.length;x++){
System.out.print(result[x]+"、");
}
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值