我这里有三个类,一个Array,一个SortArray,一个ReverseArray ,我想利用 SortArray和ReverseArray类,对Array类的temp数组进行排序后在反转,我研究半天没弄出来 这个可以实现吗?希望大虾能帮下忙- import java.util.Arrays;
- class Array{
- private int[] temp = null; // 只是声明一个数组.但是大小未知
- private int foot = 0; // 用于保存下一个的记录点
-
- public Array(int len){
- if(len > 0){
- temp = new int[len]; // 此时大小由外部决定
- }else{
- temp = new int[1]; // 至少开辟一个空间
- }
- }
-
- /*
- * 加入数据操作
- */
- public boolean add(int i){
- if(foot < temp.length){ // 还有空位
- temp[foot] = i; // 加入内容
- foot++; // 改变长度,自增
-
- return true; // 加入成功返回true
- }else{
- return false; //加入失败
- }
- }
- /*
- * 返回全部的数组
- */
- public int[] getArray(){
- return temp;
- }
- }
- /*
- * 定义排序类
- */
- class SortArray extends Array{
- public SortArray(int len){
- super(len);
- }
- /*
- * 对数组进行排序
- */
- public int[] getArray(){
- Arrays.sort(super.getArray()); // 排序操作
- // System.out.println(Arrays.toString(super.getArray()));
- return super.getArray(); // 返回的是排序后的内容
- }
- }
- /*
- * 反转类
- */
- class ReverseArray extends Array{
- public ReverseArray(int len){
- super(len);
- }
-
- public int[] getArray(){
- int rt[] = new int[super.getArray().length]; // 根据大小开辟空间
- int count = rt.length-1; // count等于最后一个角标.
- for(int x = 0;x<super.getArray().length;x++){
- rt[count] = super.getArray()[x]; // 反转
- count --;
- }
-
- return rt;
- }
- }
- public class ArrayDemo {
- public static void main(String[] args) {
- Array arr = new Array(6);
-
- arr.add(3);
- arr.add(23);
- arr.add(1);
- arr.add(5);
- arr.add(6);
- arr.add(8);
- arr.add(11);
-
- }
- }
复制代码 |