📌  相关文章
📜  Java中的 CopyOnWriteArrayList indexOf() 方法

📅  最后修改于: 2022-05-13 01:54:46.691000             🧑  作者: Mango

Java中的 CopyOnWriteArrayList indexOf() 方法

  • CopyOnWriteArrayListindexOf(Object o)方法返回列表中传递的元素的第一次出现。如果元素不在列表中,则返回 -1。

    句法:

    public int indexOf(Object o)

    参数:该函数接受一个参数o ,它的第一次出现将被返回。

    返回值:函数返回第一次出现的元素。如果元素不在列表中,则返回 -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 ArrLis
                = new CopyOnWriteArrayList();
      
            // 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
    

    方案二:

    // 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 ArrLis
                = new CopyOnWriteArrayList();
      
            // 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
    
  • CopyOnWriteArrayListindexOf(E e, int index)方法返回位置 index 之后列表中传递的元素的第一次出现。如果元素不在列表中,则返回 -1。

    句法:

    public int indexOf(E e, int index)

    参数:该函数接受两个参数,如下所述:

    • index:指定要从中搜索事件的索引。
    • e :指定从位置索引中第一次出现的元素将被返回。

    返回值:函数返回位置索引后第一次出现的元素。如果元素不在列表中,则返回 -1。

    异常:如果指定的索引为负数,该函数将引发IndexOutOfBoundsException

    下面的程序说明了上述函数:

    方案一:

    // 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 ArrLis
                = new CopyOnWriteArrayList();
      
            // 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
    

    方案二:

    // 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 ArrLis
                = new CopyOnWriteArrayList();
      
            // 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: Java/util/concurrent/CopyOnWriteArrayList.html#indexOf-E-int-