Program: How To Reverse ArrayList in Java + Custom Reverse


Example programs on how to reverse ArrayList in java. Collections.reverse() method is used to reverse any List implementation collection and can use the custom reverse method.

1. Introduction

In this article, we'll be learning how to reverse ArrayList in java. Reversing can be done in two ways using Collections.reverse() method and custom reverse method.
This is one of the ArrayList interview questions commonly asked.

In the end, You will decide which is the simplest way to reverse List?

Program: How To Reverse ArrayList in Java + Custom Reverse

2. Reverse Using Collections.reverse() Method

Collections class a utility method to reverse the List implementation. reverse() method takes List as an argument. So that any List implementation such as ArrayList, Vector or LinkedList can be passed as argument to this method. Internally, this method runs a loop sequentially. It takes first, last index elements and swaps the values in their positions and the same process will be repeated for second and size-2. This logic is applied until reaches the mid element. This takes time complexity O(n).


package com.java.w3schools.blog.arraylist;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

 * Reversing list using public static void reverse(List<?> list) -> Collections.reverse()
 * @author javaprogramto.com
public class ArrayListReverse {

 public static void main(String[] args) {
  ArrayList<String> yearsList = new ArrayList<String>(Arrays.asList("1720", "1820", "1920", "2020"));

  System.out.println("Original list before Reverse : " + yearsList);


  System.out.println("Reversed list : " + yearsList);




Original list before Reverse : [1720, 1820, 1920, 2020]
Reversed list : [2020, 1920, 1820, 1720]

reverse() method reverses the original list rather than creating a new list with reversed values. To Collections.sort() method, you can pass LinkedList or Vector objects similar to the ArrayList.

3. Custom reverse without built-in API methods

In the previous example, We have seen how we can reverse ArrayList with collections.reverse() method.
Now, we will write a program to use our own logic to reverse. First, create a separate the new list as reversedList with the same original list size. next, run the for loop from last index to 0. Take each value from last index and add the value to the reversedList. Finally, reversedList will be holding values in the reverse order and the original list remains have values in the same positions without any changes.

package com.java.w3schools.blog.arraylist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

 * ArrayList Custom reverse
public class ArrayListCustomReverse {

 public static void main(String[] args) {

  List<Integer> numbers = new ArrayList<Integer>();


  System.out.println("Original list : " + numbers);

  List<Integer> reversedList = new ArrayList<Integer>(numbers.size());

  for (int i = numbers.size() - 1; i >= 0; i--) {


  System.out.println("Reversed list with custom approach : " + reversedList);
  System.out.println("Checking the Original list : " + numbers);



Original list : [10, 20, 30, 40, 50, 60, 70, 80, 90]
Reversed list with custom approach : [90, 80, 70, 60, 50, 40, 30, 20, 10]
Checking the Original list : [10, 20, 30, 40, 50, 60, 70, 80, 90]

See the output, it has reversed the values and stored the result in the separate list. And printed the original list at the end which did not get modified.

4. Exceptions

below is the exception is thrown at runtime.

Original list : [10, 20, 30, 40, 50, 60, 70, 80, 90]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9, Size: 9
 at java.util.ArrayList.rangeCheck(ArrayList.java:657)
 at java.util.ArrayList.get(ArrayList.java:433)
 at com.java.w3schools.blog.arraylist.ArrayListCustomReverse.main(ArrayListCustomReverse.java:33)

5. Conclusion

In this post, we have seen the programs on how to reverse a list in java using Collections.sort() and custom reversing (own implementation).

Collections.reverse() is the simplest way to reverse and this method has an optimized logic because it just swaps the values first and last index and repeats the same process until reaches the mid element. This takes less to reverse but the input list will be modified. If you do not want to modify the existing list then go for the Custom reverse approach but you can still optimize the logic using the bidirectional approach.

Other References:

ArrayList Sort
ArrayList Examples

How to reverse a number in java using while and for loops?



About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: Program: How To Reverse ArrayList in Java + Custom Reverse
Program: How To Reverse ArrayList in Java + Custom Reverse
Example programs on how to reverse ArrayList in java. Collections.reverse() method is used to reverse any List implementation collection and can use the custom reverse method.
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content