Tutorial

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

Updated on November 19, 2022
authorauthor

Pankaj and Bradley Kouchi

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:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar
Pankaj

author



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
JournalDev
DigitalOcean Employee
DigitalOcean Employee badge
May 13, 2020

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

- Danuja

    JournalDev
    DigitalOcean Employee
    DigitalOcean Employee badge
    January 10, 2020

    Thanks for this post…it helps.

    - Possible

      Try DigitalOcean for free

      Click below to sign up and get $200 of credit to try our products over 60 days!

      Sign up

      Join the Tech Talk
      Success! Thank you! Please check your email for further details.

      Please complete your information!

      Become a contributor for community

      Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

      DigitalOcean Documentation

      Full documentation for every DigitalOcean product.

      Resources for startups and SMBs

      The Wave has everything you need to know about building a business, from raising funding to marketing your product.

      Get our newsletter

      Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

      New accounts only. By submitting your email you agree to our Privacy Policy

      The developer cloud

      Scale up as you grow — whether you're running one virtual machine or ten thousand.

      Get started for free

      Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

      *This promotional offer applies to new accounts only.