How to sort an ArrayList in java

By default, the ArrayList’s elements are display according to the sequence it is put inside. Often times, you may need to sort the ArrayList to make it alphabetically order. In this example, it shows the use of Collections.sort(‘List’) to sort an ArrayList.


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

public class SortArrayList{
	
	public static void main(String args[]){
		
		List<String> unsortList = new ArrayList<String>();
		
		unsortList.add("CCC");
		unsortList.add("111");
		unsortList.add("AAA");
		unsortList.add("BBB");
		unsortList.add("ccc");
		unsortList.add("bbb");
		unsortList.add("aaa");
		unsortList.add("333");
		unsortList.add("222");
		
		//before sort
		System.out.println("ArrayList is unsort");
		for(String temp: unsortList){
			System.out.println(temp);
		}
		
		//sort the list
		Collections.sort(unsortList);
		
		//after sorted
		System.out.println("ArrayList is sorted");
		for(String temp: unsortList){
			System.out.println(temp);
		}
	}
	
}

Output


ArrayList is unsort
CCC
111
AAA
BBB
ccc
bbb
aaa
333
222
ArrayList is sorted
111
222
333
AAA
BBB
CCC
aaa
bbb
ccc

Reference

  1. ASCII table list
  2. Collections.sort() documentation

19 comments on “How to sort an ArrayList in java

  1. I have an Employee table with Id, name, positions, salary. i had used comparable and compare methods to sort the fields but is there any way to sort the without comparable method. like i wanna sort positions in the list?

  2. One thing to note here is that sorting will be done in natural ordering and it happens because String class implements Comparable interface and provides implementation for the method compareTo(String anotherString) .. If there is a need to use any other order for sorting then we have to use custom comparator or there is also reverseOrder method.

    See some of the ways to sort arraylist here – http://netjs.blogspot.com/2015/08/how-to-sort-arraylist-in-java.html

    http://netjs.blogspot.com/2015/08/how-to-sort-arraylist-of-custom-objects-java.html

  3. Hi,I am trying to make the program sort and display in ascending alphabetical order names and also person can search the name on the list.It is easy way to make this with binary file. Check the link please.What should I do to make that happen?
    Thank you.http://pastebin.com/bnMHMRW9

  4. this is doesn’t work
    I have to do it like that
    Collections.sort(student, new Comparator() {

    @Override
    public int compare(Student o1, Student o2) {
    return o1.getName().compareTo(o2.getName());

    }
    });
    }

    then it works

Leave a Comment

Your email address will not be published. Required fields are marked *