Home » Core Java » util » Collections » Java Collections Sort Example

About Aldo Ziflaj

Aldo Ziflaj
Aldo is a student of Computer Engineering and a programming addict. He spares his free time coding, whether mobile, web, or desktop programming. He is also a developer for Mozilla Albania team.

Java Collections Sort Example

In this example, I will show how to use the java.util.Collections class in order to perform sorting.

The Collections class consists of static methods that return or operate on collections, such as Lists, Maps, Sets, etc.

All the methods throw a NullPointerException if the collection(s) passed as a parameter is/are null.

ArraySortExample

Create a class named ArraySortExample with the following source code:

package com.javacodegeeks.example;

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

public class ArraySortExample {

	public static void main(String[] args) {
		ArrayList<Integer> randInts = new ArrayList<>();
		Random rnd = new Random();

		//generate 5 random ints for randInts
		for (int i=0;i<5;i++) {
			randInts.add(rnd.nextInt());
		}

		//show the unordered randInts
		printList(randInts);

		//sort the randInts ArrayList
		Collections.sort(randInts);

		//show the ordered randInts
		printList(randInts);
	}

	public static void printList(List<Integer> l) {
		System.out.print("[ ");
		for (int i=0;i<l.size();i++) {
			System.out.print(l.get(i)+" ");
		}
		System.out.println("]");
	}
}

My output is this (yours will be different):

[ -1503773474 -1286923903 1899281552 390130031 -706284752 ]
[ -1503773474 -1286923903 -706284752 390130031 1899281552 ]

I created an ArrayList and I filled it with 5 random integers, using java.util.Random class. Then, I used Collections.sort() to sort the integers in the ArrayList. I printed the ArrayList in both two stages: unsorted and sorted, in order to see the result of Collections.sort() method.

BackwardSortExample

The same method, Collections.sort(), can be also used to sort in the other direction, i.e. from the greatest number to the smallest. This can be done by adding another parameter, a Comparator. See the example below:

package com.javacodegeeks.example;

import java.util.*;

public class BackwardSortExample {

	public static void main(String[] args) {
		ArrayList<Integer> randInts = new ArrayList<>();
		Random rnd = new Random();

		//generate 5 random ints for randInts
		for (int i=0;i<5;i++) {
			randInts.add(rnd.nextInt());
		}

		//show the unordered randInts
		printList(randInts);

		//sort the randInts ArrayList
		Collections.sort(randInts, new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return (o2.intValue() > o1.intValue()) ? 1 : -1;
			}
		});

		//show the ordered randInts
		printList(randInts);
	}

	public static void printList(List<Integer> l) {
		System.out.print("[ ");
		for (int i=0;i<l.size();i++) {
			System.out.print(l.get(i)+" ");
		}
		System.out.println("]");
	}
}

My output is:

[ 1496339441 247557973 -557265969 -1655233986 674163918 ]
[ 1496339441 674163918 247557973 -557265969 -1655233986 ]

What changed in this example is the order of the sorting: this time in reverse. To do this, I passed another parameter into Collections.sort() method, a Comparator and overloaded its compare(T o1,T o2) method. This method tells to the Collections.sort() method how to sort the elements of the Collection that needs to be sorted.

Download Code

Download
You can download the full source code of this example here : ArraySortExample

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

and many more ....

 

Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close