How to sort Numbers ArrayList in java with examples


This is an short tutorial about Different ways to sort list of numbers in java.

Let us say We have a set of numbers say 100,200,4,5,79,26.

We can use either Array or List implementation(ArrayList or LinkedList in java.util package used to sort numbers

Java8 How to sort list of numbers with stream.sorted()

This is an example for sort ArrayList of numbers

  • natural order
  • ascending order
  • descending order

Here are the sequence of steps

  • Create an ArrayList with inline initialization using Arrays.asList method
  • Iterate using stream method and return stream
  • sorted again sorted the stream in natural order and returns returns stream
  • Finally Returns collection using collect method

For descending order, you can override sorted method as follows

  sorted((item1, item2) -> item2.compareTo(item1)

For ascending order, you can override sorted method as follows

  sorted((item1, item2) -> item1.compareTo(item2)

Here is an complete example

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(100,200,4,5,79,26);
        System.out.println("Initial List: "+list);

        List<Integer> sortedList = list.stream().sorted().collect(Collectors.toList());
        System.out.println("Sorted Natural List: "+sortedList);
        List<Integer> sortedDescendingList = list.stream().sorted((item1, item2) -> item2.compareTo(item1)).collect(Collectors.toList());
        List<Integer> sortedAscendingList = list.stream().sorted((item1, item2) -> item1.compareTo(item2)).collect(Collectors.toList());

        System.out.println("Sorted Ascending List: "+sortedAscendingList);
        System.out.println("Sorted Descending List: "+sortedDescendingList);

    }
}

Initial List: [100, 200, 4, 5, 79, 26]
Sorted Natural List: [4, 5, 26, 79, 100, 200]
Sorted Ascending List: [4, 5, 26, 79, 100, 200]
Sorted Descending List: [200, 100, 79, 26, 5, 4]

Collections sort to sort numbers in natural and reverse order example

we have used Sort method for natural order sorting

  • List.sort() method
  • Collections.sort() method

For reverse order, you can use reverse methods

  • List.reverse() method
  • Collections.reverse() method
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        Integer[] numbs = new Integer[]{100, 200, 4, 5, 79, 26};
        System.out.println("Initial List=" + numbs);
        /*For sorting numbers we can use Arrays's sort method*/
        Arrays.sort(numbs);

        Integer[] numbs1 = new Integer[]{100, 200, 4, 5, 79, 26, 20};

        /*For sorting numbers we can also use List's  sort method*/
        List listNumbers = Arrays.asList(numbs1);
        Collections.sort(listNumbers);
        System.out.println("Sort List using List sort=" + listNumbers);

        Arrays.sort(numbs);
        Collections.sort(listNumbers);
        System.out.println("List reverse order=" + numbs);
        System.out.println("Collections reverse order=" + listNumbers);


    }
}

Arrays can store the static list of data items, that means size cannot be grown and fixed.

where as List store the list of dynamic data times.

Conclusion

We have learned different ways to sort numbers in list with java8 streams and sort method.

THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.