Java中的 CopyOnWriteArrayList listIterator() 方法
CopyOnWriteArrayList的listIterator()方法以正确的顺序在此列表中的元素上返回一个 listIterator。 listIterator 不支持 remove、set 或 add 方法。
句法:
public ListIterator listIterator()
参数:该函数不接受任何参数。
返回值:该函数返回此列表中元素的列表迭代器(以正确的顺序)
下面的程序说明了上述函数:
方案一:
Java
// 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 ArrLis
= new CopyOnWriteArrayList();
// 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());
}
}
}
Java
// 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 ArrLis
= new CopyOnWriteArrayList();
// 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());
}
}
}
Java
// 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 ArrLis
= new CopyOnWriteArrayList();
// 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());
}
}
}
输出:
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)
参数:该函数接受一个参数索引,它指定要从列表迭代器返回的第一个元素的索引。
返回值:该函数从指定索引开始(以正确的顺序)返回此列表中元素的列表迭代器。
异常:如果索引超出范围,该函数将抛出IndexOutOfBoundsException 。
下面的程序说明了上述函数:
方案一:
Java
// 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 ArrLis
= new CopyOnWriteArrayList();
// 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
方案二:
Java
// 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 ArrLis
= new CopyOnWriteArrayList();
// 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: Java/util/concurrent/CopyOnWriteArrayList.html#listIterator–