我创建了一个删除堆栈中任何副本的方法,并返回按升序排序的结果堆栈。例如,查看main函数,它应该输出为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);
}
}
答案 0 :(得分:1)
System.out.println仅打印之前初始化的对象。除非您创建Stack的新对象或重新初始化...
,否则removeDouble(s)没有任何影响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); Stack<Integer> tempStack = removeDouble(s); // create new object System.out.println(tempStack);
}
答案 1 :(得分:1)
正如您在Doc中所看到的,没有类似于删除重复的内容
https://docs.oracle.com/javase/6/docs/api/java/util/Stack.html
但您可以在以下时间执行此操作:
1-获取堆栈元素作为枚举
2转枚举到列表
3-添加列表以设置
4-清除堆栈
5- add set to stack
// Sass code
.disabled-cell
background-color: gray
opacity: 1
&:hover
cursor: not-allowed
.fc-view
td
cursor: pointer