スタック内の重複を削除し、昇順でソートされた結果のスタックを返すメソッドを作成しました。たとえば、メイン関数を見ると、1、3、4、7 として出力されるはずですが、代わりに元のスタック データが出力されますが、これは正しくありません。助言がありますか?
import java.util.ListIterator;
import java.util.Stack;
public class removeDoubleInStack {
public static Stack<Integer> removeDouble(Stack<Integer> s) {
Stack<Integer> tempStack = new Stack<Integer>();
ListIterator<Integer> iter = s.listIterator();
while(iter.hasNext()) {
int tempNext = iter.next();
if(tempNext != iter.next())
tempStack.add(tempNext);
}
return tempStack;
}
public static void main(String[] args) {
Stack<Integer> s = new Stack<Integer>();
s.add(1);
s.add(3);
s.add(3);
s.add(4);
s.add(7);
s.add(7);
removeDouble(s);
System.out.println(s);
}
}