建立一个可以实现整型数组的操作类(Array),而后在里面可以操作的数组的大小由外部来决定, 而后在Array类里面需要提供有数组的如下处理:进行数据的增加(如果数据满了则无法增加)、可以实现数组的容量扩充、取得数组全部内容。 完成之后在此基础上再派生出两个子类: · 数组排序类:返回的数据必须是排序后的结果; · 数组反转类:可以实现内容的首尾交换。
class Array {
private int [] data;
private int foot;// 进行数组索引控制
public Array(int len){
if(len > 0){
this.data = new int[len];
} else {
this.data = new int[1];
}
}
// 实现数组的容量扩充,给出的是扩充大小,实际大小,
public void increment(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){
this.data[this.foot++] = num;
return true;
}
return false;
}
public int[] getData(){
return this.data;
}
}
class SortArray extends Array {
public SortArray(int len){
super(len);
}
public int[] getData(){// 获得排序结果
java.util.Arrays.sort(super.getData());// 排序
return super.getData();
}
}
class ReverseArray extends Array {
public ReverseArray(int len){
super(len);
}
public int[] getData(){// 获得排序结果
int center = super.getData().length / 2;
int head = 0;
int tail = super.getData().length - 1;
for(int x = 0;x < center;x++){
int temp = super.getData()[head];
super.getData()[head] = super.getData()[tail];// 将head,tail位置的数组颠倒!!!
super.getData()[tail] = temp;
head++;
tail--;
}
return super.getData();
}
}
public class HelloWorld {
public static void main(String args[]) {
Array arr = new Array(5);
//SortArray arr = new SortArray(5);
//ReverseArray arr = new ReverseArray(5);
System.out.println(arr.add(1));
System.out.println(arr.add(12));
System.out.println(arr.add(143));
System.out.println(arr.add(153));
System.out.println(arr.add(12));
arr.increment(3);
System.out.println(arr.add(91));
System.out.println(arr.add(92));
System.out.println(arr.add(93));
int result[] = arr.getData();
for(int temp : result){
System.out.print(temp + ",");
}
}
}
标签:arr,int,System,数组,8.23,操作,getData,super,public
From: https://www.cnblogs.com/pansidong/p/17467815.html