1.3.12编写一个可迭代的Stack用例,它含有一个静态的copy()方法,接受一个字符串的栈作为参数,并返回该栈的一个副本。注意:这种能是迭代器价值的一个重要体现,因为有了它我们无需改变基本API就能够实现这种功能。
答:public class test{ public static void main(String[] args) { Stack<String> s=new Stack<String>(); while(!StdIn.isEmpty()) { String item=StdIn.readString(); s.push(item); } // StdOut.println("Stack of s before copy:"); show(s); // Stack<String> s2=copy(s); StdOut.println("Stack of s after copy:"); show(s); StdOut.println("Stack of s copy:"); show(s2); }//end main public static Stack<String> copy(Stack<String> s) { Stack<String> tempStack=new Stack<String>(); Stack<String> copyStack=new Stack<String>(); for(String item:s) tempStack.push(item); for(String item:tempStack) copyStack.push(item); return copyStack; } private static void show(Stack<String> s) { for(String item:s) StdOut.print(item); StdOut.println(); }}//end class