Java中的CopyOnWriteArrayList indexOf()方法

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-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程