ArrayList.subList(int, int) in Java

ArrayList.subList(int, int): This method is available in java.util.ArrayList class of Java.

Syntax:

List<E> java.util.ArrayList.subList(int fromIndex, int toIndex)

This method takes two arguments of type int as its parameters. This method returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive.

Parameters: Two parameters are required for this method.

fromIndex: low end point (inclusive) of the subList.

toIndex: high end point (exclusive) of the subList.

Returns: a view of the specified range within this list.

Throws:

1. IndexOutOfBoundsException - for an illegal endpoint index value(fromIndex < 0 || toIndex > size ||fromIndex > toIndex).

2. IllegalArgumentException - if the end point indices are out of order (fromIndex > toIndex)

Approach 1: When no exception

Java

import java.util.ArrayList;

public class ArrayListsubList {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<>();
        arr.add(1);
        arr.add(2);
        arr.add(355);
        arr.add(3);

        arr.add(4);
        arr.add(100);
        arr.add(34);
        System.out.println(arr.subList(1, 4));

    }
}

Output:

[2, 355, 3]


Approach 2: IndexOutOfBoundsException

Java

import java.util.ArrayList;

public class ArrayListsubList {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<>();
        arr.add(1);
        arr.add(2);
        arr.add(355);
        arr.add(3);

        arr.add(4);
        arr.add(100);
        arr.add(34);
        System.out.println(arr.subList(-1, 4));

    }
}

Output:

Exception in thread "main" java.lang.IndexOutOfBoundsException: fromIndex = -1 at java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:505) at java.base/java.util.ArrayList.subList(ArrayList.java:1108)



Approach 3: IllegalArgumentException 

Java

import java.util.ArrayList;

public class ArrayListsubList {
    public static void main(String[] args) {
        ArrayList<Integer> arr = new ArrayList<>();
        arr.add(1);
        arr.add(2);
        arr.add(355);
        arr.add(3);

        arr.add(4);
        arr.add(100);
        arr.add(34);
        System.out.println(arr.subList(5, 4));

    }
}

Output:

Exception in thread "main" java.lang.IllegalArgumentException: fromIndex(5) > toIndex(4) at java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:509) at java.base/java.util.ArrayList.subList(ArrayList.java:1108)



No comments:

Post a Comment