How to reverse a List in Java
In this blog post, I will be explaining how you can reverse a Set or List via Java. Consider the following code snippet:
package learnjava.collections; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ReverseDemo { public static void main(String[] args) { List<Integer>inputList = new ArrayList<Integer>(); inputList.add(5); inputList.add(15); inputList.add(20); inputList.add(25); List<Integer>reverserdList1 = reverseList1(inputList); List<Integer>reverserdList2 = reverseList2(inputList); System.out.println("Input List is "+inputList); System.out.println("reverserdList using method1 "+reverserdList1); System.out.println("reverserdList using method2 "+reverserdList2); } private static List<Integer> reverseList2(List<Integer>inputList ){ List<Integer> reverserdList = new ArrayList<Integer>(); for(int i =inputList.size()-1;i >=0;i--){ reverserdList.add(inputList.get(i)); } return reverserdList; } private static List<Integer> reverseList1(List<Integer>inputList ){ Collections.reverse(inputList); return inputList; } } <pre>
This code snippet demonstrates two ways to reverse a List.
Method 1 – Using Collections.reverse
The Collections class has a number of useful utility methods for collections. One such method provided by this class is the Collections.reverse method. This method accepts a Collection and reverses its contents. So any Collection like Set, List, etc can be passed to this method. It has no return value, it returns a void. So the Collection that is passed in is modified by this method.
Method 2 – Using Manual method
In the manual method, the code iterates through the input List in the reverse order. It then adds each element in the List to a new List and returns the new List object.
So when you run this code, it will produce the following output:
Input List is [25, 20, 15, 5] reverserdList using method1 [25, 20, 15, 5] reverserdList using method2 [5, 15, 20, 25]