Java程序:判断元素是否在栈中
栈是一种线性数据结构,其中元素以LIFO方式存储。这里,LIFO代表后进先出,这意味着最后插入的元素将是第一个被访问的元素。
在Java中,栈是Java 集合框架提供的类,它实现了栈数据结构。在这篇文章中,我们将编写Java程序来判断元素是否在栈中。
使用Stack.search()方法
java.util.Stack.search()方法用于判断元素是否在Java的栈中。此方法接受一个参数,即在栈中搜索的元素。如果元素存在,则返回元素在栈中的位置(从1开始计数);如果元素不存在,则返回-1。
示例
演示此方法的程序如下所示:
import java.util.Stack;
public class Demo {
public static void main (String args[]) {
Stack<String> stack = new Stack<>();
stack.push("Apple");
stack.push("Mango");
stack.push("Pear");
stack.push("Orange");
stack.push("Guava");
System.out.println("The stack elements are: " + stack);
System.out.println("The element Mango is in the stack at position: " + stack.search("Mango"));
System.out.println("The element Peach is in the stack at position: " + stack.search("Peach"));
}
}
执行上述代码后,将显示以下输出:
The stack elements are: [Apple, Mango, Pear, Orange, Guava] The element Mango is in the stack at position: 4 The element Peach is in the stack at position: -1
通过迭代栈
另一种查找元素的方法是遍历栈。通过这种方法,我们使用for-each循环迭代并检查每个元素,直到找到匹配项。
示例
下面的Java程序演示了上述方法的实现。
import java.util.Stack;
public class Demo {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(101);
stack.push(201);
stack.push(301);
stack.push(302);
stack.push(303);
System.out.println("The stack elements are: " + stack);
// element to find
int findElmnt = 201;
boolean found = false;
// for-each loop to check
for(int i : stack) {
if(i == findElmnt) {
found = true;
break;
}
}
// printing the result
if(found) {
System.out.println("Element is in the Stack");
} else {
System.out.println("Element is not in the Stack");
}
}
}
运行后,您将得到以下输出:
The stack elements are: [101, 201, 301, 302, 303] Element is in the Stack
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP