从另一个类中的一个类反转堆栈

时间:2017-11-22 20:13:35

标签: java class stack

我的任务是在一个单独的类(Stack util的扩展)中创建一个方法,它接受一个堆栈并将其反转(即堆栈是[5,7,10]返回[10,7, 5])。

TEST课程由教授提供,使用我的单独课程及其方法来运行这些命令。

编辑:mwohlf实施的解决方案

代码:

考试班(由教授提供):

public class myStackReverseTEST {

    public static void main(String[] args) {
        int val;
        myStackReverse<Integer> stack = new myStackReverse<Integer>();
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
        stack.push(new Integer(5));
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
        stack.push(new Integer(10));
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
        stack.push(new Integer(7));
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
        stack.push(new Integer(10));
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
        val = stack.pop();
        System.out.println(stack.toString());
        System.out.println(stack.toStringReverse());
    }

}

我的类使用方法toStringReverse():

import java.util.*;

public class myStackReverse<E> extends Stack<E> {

    public String toStringReverse()
    {
        Stack<E> origStack = (Stack)this.clone();
        Stack<E> revStack = new Stack<E>();

        while (!origStack.isEmpty())
        {
            revStack.add(origStack.pop());
        }

        return revStack.toString();

    }
}

旁注:有序列化错误,如果我愿意,我被告知要忽略它,因为它在完成后不会直接影响程序的结果。

1 个答案:

答案 0 :(得分:0)

试试这个:

class myStackReverse<E> extends Stack<E> {
    public String toStringReverse() {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        if (this.size() > 0) {
            sb.append(this.get(this.size()-1));
        }
        for (int i = this.size()-2; i>=0; i--) {
            sb.append(", ");
            sb.append(this.get(i));
        }
        sb.append("]");
        return sb.toString();
    }
}

或者如果你想避免克隆使用更少的内存(但代码更多):

All Pages
相关问题