Java中的Stack indexOf(Object, int)方法示例
Java.util.Stack.indexOf(Object element, int index)方法用于查找堆栈中指定元素的第一个出现位置,从索引开始向前搜索,如果未找到该元素则返回-1。更正式地,返回最低的索引i,使得(i >= index && Objects.equals (o,get(i))),如果没有这样的索引,则返回-1。
语法:
public int indexOf(Object element,
int index)
参数: 这个方法接受两个参数:
- 元素-Stack类型。它指定需要在堆栈中检查其是否出现的元素。
- 索引-Integer类型。它指定从哪个索引开始搜索
返回值: 此方法返回元素在指定索引处在栈中的第一个出现位置或位置。否则,如果堆栈中不存在该元素,则返回-1。返回值的类型为整数。
异常:如果指定的索引为负,则此方法会抛出IndexOutOfBoundsException。
下面的程序说明了Java.util.Stack.indexOf()方法:
程序1:
// Java代码示例indexOf()
import java.util.*;
public class StackDemo {
public static void main(String args[])
{
// 创建一个空Stack
Stack<String> stack = new Stack<String>();
// 使用add()方法将元素添加到Stack中
stack.add("Geeks");
stack.add("for");
stack.add("Geeks");
stack.add("10");
stack.add("Geeks");
// 显示Stack
System.out.println("Stack: " + stack);
// 返回第一个元素的位置
System.out.println("第一个出现的位置"
+ " of Geeks is at index:"
+ stack.indexOf("Geeks"));
// 使用indexOf()方法获取第二个Geeks出现
System.out.println("第二个出现的位置"
+ " of Geeks is at index: "
+ stack.indexOf("Geeks",
stack.indexOf("Geeks")));
}
}
Stack: [Geeks, for, Geeks, 10, Geeks]
第一个出现的位置 of Geeks is at index:0
第二个出现的位置 of Geeks is at index: 0
程序2: 演示IndexOutOfBoundsException
// Java代码示例indexOf()
import java.util.*;
public class StackDemo {
public static void main(String args[])
{
// 创建一个空Stack
Stack<Integer> stack = new Stack<Integer>();
// 使用add()方法将元素添加到Stack中
stack.add(1);
stack.add(2);
stack.add(3);
stack.add(10);
stack.add(20);
// 显示Stack
System.out.println("Stack: " + stack);
// 使用indexOf()方法获取Geeks的-1出现
System.out.println("Geeks的-1出现位置为: ");
try {
stack.indexOf("Geeks",
stack.indexOf("Geeks"));
}
catch (Exception e) {
System.out.println(e);
}
}
}
Stack: [1, 2, 3, 10, 20]
The -1 occurrence of Geeks is at index:
java.lang.ArrayIndexOutOfBoundsException: -1