Java AbstractList subList()方法及示例
java.util.AbstractList 类的 subList() 方法用于返回该列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分的视图。(如果fromIndex和toIndex相等,返回的列表为空)。
返回的列表由这个列表支持,所以返回的列表中的非结构性变化会反映在这个列表中,反之亦然。返回的列表支持所有可选的列表操作。
语法
public List<E> subList(int fromIndex, int toIndex)
参数: 该方法需要以下参数作为参数。
- fromIndex: 子表的低端点(包括)。
- toIndex: 子列表的高端点(不包括)。
返回值: 该方法返回该列表中指定范围的视图。
异常: 该方法会抛出以下异常。
- IndexOutOfBoundsException: 如果一个端点的索引值超出了范围(fromIndex大小)。
- IllegalArgumentException: 如果端点索引值不符合顺序(fromIndex > toIndex)。
下面是说明subList()方法的例子。
例子1 :
// Java program to demonstrate
// subList() method for String value
import java.util.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// Creating object of AbstractList<Integer>
AbstractList<String>
arrlist = new ArrayList<String>();
// Populating arrlist1
arrlist.add("A");
arrlist.add("B");
arrlist.add("C");
arrlist.add("D");
arrlist.add("E");
// print arrlist
System.out.println("Original AbstractList: "
+ arrlist);
// getting the subList
// using subList() method
List<String> arrlist2 = arrlist.subList(2, 4);
// print the 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 program to demonstrate
// subList() method for IndexOutOfBoundsException
import java.util.*;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
// Creating object of AbstractList<Integer>
AbstractList<String>
arrlist = new ArrayList<String>();
// Populating arrlist1
arrlist.add("A");
arrlist.add("B");
arrlist.add("C");
arrlist.add("D");
arrlist.add("E");
// print arrlist
System.out.println("Original AbstractList: "
+ arrlist);
// getting the subList
// using subList() method
System.out.println("\nEnd index value is out of range");
List<String> arrlist2 = arrlist.subList(2, 7);
// print the 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]
End index value is out of range
java.lang.IndexOutOfBoundsException: toIndex = 7
例3: 对于IllegalArgumentException
// Java program to demonstrate
// subList() method for IllegalArgumentException
import java.util.*;
public class GFG1 {
public static void main(String[] argv) throws Exception
{
try {
// Creating object of AbstractList<Integer>
AbstractList<String>
arrlist = new ArrayList<String>();
// Populating arrlist1
arrlist.add("A");
arrlist.add("B");
arrlist.add("C");
arrlist.add("D");
arrlist.add("E");
// print arrlist
System.out.println("Original AbstractList: "
+ arrlist);
// getting the subList
// using subList() method
System.out.println("\nEndpoint indices "
+ "are out of order"
+ " (fromIndex > toIndex)");
List<String> arrlist2 = arrlist.subList(7, 2);
// print the 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]
Endpoint indices are out of order (fromIndex > toIndex)
java.lang.IllegalArgumentException: fromIndex(7) > toIndex(2)
极客教程