Java中的CopyOnWriteArrayList indexOf()方法
- indexOf(Object o) 方法属于 CopyOnWriteArrayList 类,返回传入列表中元素的第一个出现位置。如果元素不存在于列表中,则返回-1。
语法:
public int indexOf(Object o)
参数: 该方法接受一个参数 o,返回第一个出现位置的元素。
返回值: 该方法返回元素第一个出现的位置,如果元素不存在于列表中,则返回-1。
下面的程序演示了上述函数:
程序1:
// Java Program to illustrate the CopyOnWriteArrayList
// indexOf() method in Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create object of CopyOnWriteArrayList
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// Add elements
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: " + ArrLis);
// first occurrence of 67
System.out.println("indexOf value: " + ArrLis.indexOf(67));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
indexOf value: 1
程序2:
// Java Program to illustrate the CopyOnWriteArrayList
// indexOf() method in Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create object of CopyOnWriteArrayList
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// Add elements
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// 200 is not present
System.out.println("indexOf value: "
+ ArrLis.indexOf(200));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
indexOf value: -1
- indexOf(E e, int index) 方法属于 CopyOnWriteArrayList 类,返回在索引位置之后传入列表中元素的第一个出现位置。如果元素不存在于列表中,则返回-1。
语法:
public int indexOf(E e, int index)
参数: 该方法接受两个参数,如下所述:
* **index:** 指定要搜索出现位置的索引。
* **e:** 指定从位置`index`开始返回第一个出现位置的元素。
返回值: 该方法返回在索引位置之后元素第一个出现的位置,如果元素不存在于列表中,则返回-1。
异常: 如果指定的索引为负数,则该方法将抛出IndexOutOfBoundsException异常。
下面的程序演示了上述函数:
程序1:
// Java Program to illustrate the CopyOnWriteArrayList
// indexOf() method in Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create object of CopyOnWriteArrayList
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// Add elements
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: " + ArrLis);
// first occurrence of 67 after index 1
System.out.println("indexOf value: " + ArrLis.indexOf(67, 1));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
indexOf value: 2
程序2:
// Java Program to illustrate the CopyOnWriteArrayList
// indexOf() method in Java
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create object of CopyOnWriteArrayList
CopyOnWriteArrayList<Integer> ArrLis
= new CopyOnWriteArrayList<Integer>();
// Add elements
ArrLis.add(32);
ArrLis.add(67);
ArrLis.add(67);
ArrLis.add(100);
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// 200 is not present after index 1
System.out.println("indexOf value: "
+ ArrLis.indexOf(200, 1));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 100]
indexOf value: -1
// Java程序演示CopyOnWriteArrayList
// indexOf()方法在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(67);
// 打印CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// 从第2个索引开始找到第一次出现的67
System.out.println("indexOf value: "
+ ArrLis.indexOf(67, 2));
}
}
输出结果:
CopyOnWriteArrayList: [32, 67, 67, 67]
indexOf value: 2
程序2:
// Java程序演示CopyOnWriteArrayList
// indexOf()方法在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);
// -1超出范围,引发异常
System.out.println("indexOf value: "
+ ArrLis.indexOf(-1, 200));
}
}
输出结果:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.concurrent.CopyOnWriteArrayList.indexOf(CopyOnWriteArrayList.java:198)
at java.util.concurrent.CopyOnWriteArrayList.indexOf(CopyOnWriteArrayList.java:263)
at GFG.main(GFG.java:24)
参考文献: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#indexOf-E-int-
极客教程