Java中CopyOnWriteArrayList的lastIndexOf()方法
- CopyOnWriteArrayList 的 lastIndexOf(Object o) 方法返回列表中传递的元素的最后一次出现。如果元素不在列表中,则返回-1。
语法:
public int lastIndexOf(Object o)
参数: 函数接受一个 o 参数,其中返回最后一次出现的参数。
返回值: 如果元素不在列表中,则该函数返回元素的最后一次出现。它返回-1。
以下程序说明了上述函数:
程序1:
// Java程序说明CopyOnWriteArrayList
// lastIndexOf()方法 在Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
//添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
//打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
//最近的67
System.out.println("lastIndexOf value: "
+ ArrLis.lastIndexOf(67));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
lastIndexOf value: 2
程序2:
// Java程序说明CopyOnWriteArrayList
// lastIndexOf()方法 在Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
//添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
//打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
//200不存在
System.out.println("lastIndexOf value: "
+ ArrLis.lastIndexOf(200));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
lastIndexOf value: -1
- CopyOnWriteArrayList 的 lastIndexOf(E e,int index) 方法返回指定位置后面的元素最后一次出现。如果元素不在列表中,则返回-1。
语法:
public int lastIndexOf(E e, int index)
参数: 函数接受两个参数,具体如下:
- index: 指定要搜索的元素的索引。
- e :指定从位置 索引 开始返回元素的最后一次出现的元素。
返回值: 如果元素不在列表中,则该函数返回指定位置后面的元素的最后一次出现。它返回-1。
异常: 如果指定的索引为负,则该函数会抛出IndexOutOfBoundsException。
下面的程序说明了上述函数:
程序 1:
// Java程序演示了CopyOnWriteArrayList
// Java中的lastIndexOf()方法
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// 添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(67);
// 打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// 67从第二个索引开始lastIndexOf()方法的最后一次出现
System.out.println("lastIndexOf value: "
+ ArrLis.lastIndexOf(67, 2));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 67]
lastIndexOf value: 2
程序 2:
// Java程序演示了CopyOnWriteArrayList
// Java中的lastIndexOf()方法
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建CopyOnWriteArrayList对象
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// 添加元素
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
// 打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// -1超出范围,因此异常
System.out.println("lastIndexOf value: "
+ ArrLis.lastIndexOf(-1, 200));
}
}
输出:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.concurrent.CopyOnWriteArrayList.lastIndexOf(CopyOnWriteArrayList.java:198)
at java.util.concurrent.CopyOnWriteArrayList.lastIndexOf(CopyOnWriteArrayList.java:263)
at GFG.main(GFG.java:24)
参考: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#lastIndexOf-E-int-
极客教程