Java CopyOnWriteArrayList indexOf()方法
CopyOnWriteArrayList的indexOf(Object o)**方法返回列表中传递的元素的第一次出现。如果该元素不存在于列表中,则返回-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
CopyOnWriteArrayList的indexOf(E e, int index)方法会返回列表中的元素在索引位置之后的第一次出现。如果该元素不存在于列表中,则返回-1。
语法:
public int indexOf(E e, int index)
参数:该函数接受两个参数,描述如下。
index:指定要搜索的发生的索引。
e:指定要返回的从索引位置开始的第一次出现的元素。
返回值:该函数返回元素在索引位置之后的第一次出现。如果该元素不存在于列表中,则返回-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(67);
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: "
+ ArrLis);
// first occurrence of 67 from 2nd index
System.out.println("indexOf value: "
+ ArrLis.indexOf(67, 2));
}
}
输出:
CopyOnWriteArrayList: [32, 67, 67, 67]
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);
// -1 is out of range, hence exception
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-