Java CopyOnWriteArrayList listIterator()方法
CopyOnWriteArrayList 的 listIterator() 方法以适当的顺序返回该列表中元素的listIterator。listIterator不支持remove、set或add方法。
语法
public ListIterator listIterator()
参数: 该函数不接受任何参数。
返回值: 该函数返回一个列表中的元素的迭代器(按适当的顺序)。
下面的程序说明了上述函数。
程序1 :
// Java Program to illustrate the CopyOnWriteArrayList
// listIterator() 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);
// Call listIterator() method of
Iterator iteratorVals = ArrLis.listIterator();
// Print elements of iterator
// created from CopyOnWriteArrayList
System.out.println("The iterator values"
+ " of CopyOnWriteArrayList are:");
// prints the elements using an iterator
while (iteratorVals.hasNext()) {
System.out.println(iteratorVals.next());
}
}
}
输出
CopyOnWriteArrayList: [32, 67, 67, 100]
The iterator values of CopyOnWriteArrayList are:
32
67
67
100
CopyOnWriteArrayList 的 listIterator(index) 方法返回一个listIterator,它以适当的顺序从一个特定的索引开始覆盖这个列表中的元素。listIterator不支持remove、set或add方法。
语法
public ListIterator listIterator(int index)
参数: 该函数接受一个参数index,该参数指定从列表迭代器返回的第一个元素的索引。
返回值: 该函数返回一个从指定索引开始的列表中的元素的迭代器(按正确顺序)。
异常情况: 如果索引超出范围,该函数会抛出IndexOutOfBoundsException。
下面的程序说明了上述函数。
程序1 :
// Java Program to illustrate the CopyOnWriteArrayList
// listIterator() 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<String> ArrLis
= new CopyOnWriteArrayList<String>();
// Add elements
ArrLis.add("gopal");
ArrLis.add("gfg");
ArrLis.add("jgec");
ArrLis.add("sudo");
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: " + ArrLis);
// Call listIterator() method from 2nd index
Iterator iteratorVals = ArrLis.listIterator(2);
// Print elements of iterator
// created from CopyOnWriteArrayList
System.out.println("The iterator values"
+ " of CopyOnWriteArrayList are:");
// prints the elements using an iterator
while (iteratorVals.hasNext()) {
System.out.println(iteratorVals.next());
}
}
}
输出
CopyOnWriteArrayList: [gopal, gfg, jgec, sudo]
The iterator values of CopyOnWriteArrayList are:
jgec
sudo
程序2 :
// Java Program to illustrate the CopyOnWriteArrayList
// listIterator() method in Java, exception
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// create object of CopyOnWriteArrayList
CopyOnWriteArrayList<String> ArrLis
= new CopyOnWriteArrayList<String>();
// Add elements
ArrLis.add("gopal");
ArrLis.add("gfg");
ArrLis.add("jgec");
ArrLis.add("sudo");
// print CopyOnWriteArrayList
System.out.println("CopyOnWriteArrayList: " + ArrLis);
// Call listIterator() method from 6th index
// hence exception is returned
Iterator iteratorVals = ArrLis.listIterator(6);
// Print elements of iterator
// created from CopyOnWriteArrayList
System.out.println("The iterator values"
+ " of CopyOnWriteArrayList are:");
// prints the elements using an iterator
while (iteratorVals.hasNext()) {
System.out.println(iteratorVals.next());
}
}
}
输出
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6
at java.util.concurrent.CopyOnWriteArrayList.listIterator(CopyOnWriteArrayList.java:1107)
at GFG.main(GFG.java:25)
参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#listIterator-
极客教程