Java ArrayList subList()方法及实例

Java ArrayList subList()方法及实例

java.util.ArrayList 类的 subList() 方法用于返回该列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分的视图。(如果fromIndex和toIndex相等,返回的列表为空)。

返回的列表由这个列表支持,所以返回的列表中的非结构性变化会反映在这个列表中,反之亦然。返回的列表支持所有可选的列表操作。

语法

public List subList(int fromIndex, int toIndex)
Java

参数: 该方法需要以下参数作为参数。

  • 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 ArrayList<Integer>
            ArrayList<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 arrlist: "
                               + arrlist);
  
            // getting the subList
            // using subList() method
            List<String> arrlist2 = arrlist.subList(2, 4);
  
            // print the subList
            System.out.println("Sublist of arrlist: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Java

输出。

Original arrlist: [A, B, C, D, E]
Sublist of arrlist: [C, D]
Java

例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 ArrayList<Integer>
            ArrayList<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 arrlist: "
                               + 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 arrlist: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Java

输出。

Original arrlist: [A, B, C, D, E]

End index value is out of range
Exception thrown : java.lang.IndexOutOfBoundsException: toIndex = 7
Java

例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 ArrayList<Integer>
            ArrayList<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 arrlist: "
                               + 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 arrlist: "
                               + arrlist2);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception thrown: " + e);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown: " + e);
        }
    }
}
Java

输出。

Original arrlist: [A, B, C, D, E]

Endpoint indices are out of order (fromIndex > toIndex)
Exception thrown: java.lang.IllegalArgumentException: fromIndex(7) > toIndex(2)
Java

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册