package com.demo;
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) { // int默认值为0
this.data[this.foot ++] = num; // 此句中foot有自增
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();
}
}
public class ArrayAll {
public static void main(String[] args) {
//Array arr = new Array(3);
SortArray arr = new SortArray(3) ;
arr.add(1);
arr.add(2);
arr.add(3);
//测试数组已满不能再添加的功能
System.out.println(arr.add(4));
arr.increment(2);
//测试扩充后的添加
System.out.println(arr.add(5));
System.out.println(arr.add(6));
System.out.println(arr.add(7));
int result [] = arr.getData() ;
for(int temp : result) {
System.out.println(temp);
}
}
}
运行结果: