Java中的Stack.iterator()方法及示例
简介
Java中的Stack类是一个基于后进先出(LIFO)策略的数据结构,继承自Vector类,提供了一些非常有用的方法来操作栈。其中,Stack.iterator()方法返回一个枚举(Enumeration)对象,该对象通过遍历Stack中的元素来生成序列。更进一步可以使用Iterator接口提供的hasNext()和next()方法,从而实现对Stack元素的遍历。
方法定义
Stack.iterator()方法的定义如下:
public Iterator<E> iterator()
该方法返回一个类型为Iterator
的对象,用于遍历 Stack 中的元素。
示例
下面是一些使用Stack.iterator()
方法的示例代码,展示了如何使用Iterator接口的方法来遍历Stack的元素。
示例1
本示例展示了如何创建一个Stack对象,并使用迭代器来遍历其中的元素。
import java.util.Iterator;
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// 创建一个Stack对象
Stack<Integer> stack = new Stack<Integer>();
// 往Stack中添加元素
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
// 使用迭代器遍历Stack中的元素
Iterator<Integer> itr = stack.iterator();
while(itr.hasNext()) {
System.out.println(itr.next());
}
}
}
代码输出:
5
4
3
2
1
示例2
本示例展示了如何使用for-each循环来遍历Stack中的元素。
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// 创建一个Stack对象
Stack<Integer> stack = new Stack<Integer>();
// 往Stack中添加元素
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
// 使用for-each循环遍历Stack中的元素
for (Integer value : stack) {
System.out.println(value);
}
}
}
代码输出:
5
4
3
2
1
示例3
本示例展示了如何在遍历Stack中的元素时,删除指定的元素。
import java.util.Iterator;
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// 创建一个Stack对象
Stack<Integer> stack = new Stack<Integer>();
// 往Stack中添加元素
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
// 使用迭代器遍历Stack中的元素,并删除指定元素
Iterator<Integer> itr = stack.iterator();
while(itr.hasNext()) {
Integer value = itr.next();
if (value == 3) {
itr.remove();
}
}
// 再次使用for-each循环遍历Stack中的元素
for (Integer value : stack) {
System.out.println(value);
}
}
}
代码输出:
5
4
2
1
结论
本文中,我们介绍了Java中的Stack.iterator()方法,展示了如何使用该方法及其返回的迭代器对象来遍历Stack中的元素。此外,我们还展示了如何在遍历Stack中的元素时,删除指定的元素。希望这篇文章能对你有所帮助!