Java中的CopyOnWriteArrayList subList()方法及其示例
java.util.CopyOnWriteArrayList 类的 subList() 方法用于返回位于指定fromIndex(含)和toIndex(不含)之间的列表的视图。(如果fromIndex和toIndex相等,则返回的列表为空。)
返回的列表由该列表支持,因此返回列表中的非结构性更改将反映在该列表中,反之亦然。返回的列表支持所有可选的列表操作。
语法:
public List subList(int fromIndex, int toIndex)
参数: 此方法将以下参数作为参数。
- fromIndex – subList的低端点(含)
- toIndex – subList的高端点(不含)
返回值: 此方法返回此列表中指定范围的视图。
异常: 如果端点索引值超出范围(fromIndex size),则此方法会抛出 IndexOutOfBoundsException
下面是说明subList()方法的示例。
示例1:
//Java程序演示
//subList()方法
//对于String值
import java.util.*;
import java.util.concurrent.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// 创建CopyOnWriteArrayList<Integer>的对象
CopyOnWriteArrayList<String>
arrlist = new CopyOnWriteArrayList<String>();
//填充arrlist1
arrlist.add("A");
arrlist.add("B");
arrlist.add("C");
arrlist.add("D");
arrlist.add("E");
// 打印arrlist1
System.out.println("Original arrlist: "
+ arrlist);
// 使用subList()方法获取subList
List<String> arrlist2 = arrlist.subList(2, 4);
// 打印subList
System.out.println("Sublist of arrlist: "
+ arrlist2);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception thrown: " + e);
}
}
}
Original arrlist: [A, B, C, D, E]
Sublist of arrlist: [C, D]
示例2: 对于IndexOutOfBoundsException。
// 演示subList()方法的Java程序
// 用于IndexOutOfBoundsException异常
import java.util.*;
import java.util.concurrent.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// 创建CopyOnWriteArrayList<Integer>对象
CopyOnWriteArrayList<String>
arrlist = new CopyOnWriteArrayList<String>();
// 填充arrlist1
arrlist.add("A");
arrlist.add("B");
arrlist.add("C");
arrlist.add("D");
arrlist.add("E");
// 打印arrlist
System.out.println("Original arrlist: "
+ arrlist);
// 利用 subList() 方法获取子列表
System.out.println("\nEnd index value is out of range");
List<String> arrlist2 = arrlist.subList(2, 7);
// 打印子列表
System.out.println("Sublist of arrlist: "
+ arrlist2);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception thrown: " + e);
}
}
}
Original arrlist: [A, B, C, D, E]
End index value is out of range
Exception thrown: java.lang.IndexOutOfBoundsException
极客教程