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