// Tutorial //

How To Use remove() Methods for Java List and ListArray

Published on August 3, 2022 · Updated on November 18, 2022
Default avatar
By Pankaj
Developer and author at DigitalOcean.
How To Use remove() Methods for Java List and ListArray

Introduction

Java List remove() method is used to remove elements from the list. ArrayList is the most widely used implementation of the List interface, so the examples here will use ArrayList remove() methods.

Java List remove() Methods

There are two remove() methods to remove elements from the List.

  1. E remove(int index): This method removes the element at the specified index and returns it. The subsequent elements are shifted to the left by one place. This method throws IndexOutOfBoundsException if the specified index is out of range. If the list implementations does not support this operation, UnsupportedOperationException is thrown.
  2. boolean remove(Object o) This method removes the first occurrence of the specified Object. If the list doesn’t contain the given element, it remains unchanged. This method returns true if an element is removed from the list, otherwise false. If the object is null and list doesn’t support null elements, NullPointerException is thrown. UnsupportedOperationException is thrown if the list implementation doesn’t support this method.

Let’s look into some examples of remove() methods.

1. Remove the element at a given index

This example will explore E remove(int index):

List<String> list = new ArrayList<>();

list.add("A");
list.add("B");
list.add("C");
list.add("C");
list.add("B");
list.add("A");

System.out.println(list);

String removedStr = list.remove(1);
System.out.println(list);
System.out.println(removedStr);

First, this code constructs and prints a list:

Output
[A, B, C, C, B, A]

Then, this code executes remove(1) to remove the element at index 1. Finally, it prints the new resulting list and also prints the removed element.

Output
[A, C, C, B, A] B

The B at index 1 has been removed.

2. IndexOutOfBoundsException with remove(int index) Method

This example will explore E remove(int index) when the index exceeds the list:

List<String> list = new ArrayList<>();

list.add("A");

String removedStr = list.remove(10);

This code constructs a list with a length of 1. However, when the code attempts to remove the element at index 10:

Output
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 10 out of bounds for length 1 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.remove(ArrayList.java:535) at com.journaldev.java.ArrayListRemove.main(ArrayListRemove.java:19)

This attempt throws the IndexOutOfBoundsException.

3. Unmodifiable List remove() UnsupportedOperationException Example

The List.of() method creates an immutable list, which can’t be modified.

List<String> list = List.of("a", "b");

System.out.println(list);

String removedStr = list.remove(1);

System.out.println(removedStr);

First, this code constructs and prints an immutable list:

  1. Output
    [a, b]

Then the code attempts to use the remove() method to remove the element at index 1:

  1. Exception in thread "main" java.lang.UnsupportedOperationException
  2. at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)
  3. at java.base/java.util.ImmutableCollections$AbstractImmutableList.remove(ImmutableCollections.java:258)
  4. at TestRemoveList.main(TestRemoveList.java:12)

This attempt throws UnsupportedOperationException. It will also throw UnsupportedOperationException if you attempt list.remove("a") or list.remove("b").

4. Removing an object from the list

This example will explore boolean remove(Object o):

List<String> list = new ArrayList<>();

list.add("A");
list.add("B");
list.add("C");
list.add("C");
list.add("B");
list.add("A");

System.out.println(list);

boolean isRemoved = list.remove("C");
System.out.println(list);
System.out.println(isRemoved);

isRemoved = list.remove("X");
System.out.println(list);
System.out.println(isRemoved);

First, this code constructs and prints a list:

Output
[A, B, C, C, B, A]

Then, this code executes remove("C") to remove the first instance of C. Next, it prints the resulting list and also prints the boolean value of the operation - true:

Output
[A, B, C, B, A] true

Then, this code executes remove("X"), but there is no instance of X in the list, the list does not change. Finally, it prints the list and also prints the boolean value of the operation - false:

Output
[A, B, C, B, A] false

Conclusion

In this article, you learned about Java’s List method remove().

Recommended Reading:

References:

If you’ve enjoyed this tutorial and our broader community, consider checking out our DigitalOcean products which can also help you achieve your development goals.

Learn more here


About the authors
Default avatar
Pankaj

author

Developer and author at DigitalOcean.

Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?

why gives me a compile error which it tell cannot find the symbol

- Danuja

    Thanks for this post…it helps.

    - Possible