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