Learn Java by Example: Java Program to Sort ArrayList of Custom Objects By Property

Java Program to Sort ArrayList of Custom Objects By Property

In this program, you’ll learn to sort an arraylist of custom object by their given property in Java.


Example: Sort ArrayList of Custom Objects By Property

import java.util.*;

public class CustomObject{

    private String customProperty;

    public CustomObject(String property){
        this.customProperty = property;

    public String getCustomProperty(){
        return this.customProperty;

    public static void main(String[] args){

        ArrayList<Customobject> list = new ArrayList<>();
        list.add(new CustomObject("Z"));
        list.add(new CustomObject("A"));
        list.add(new CustomObject("B"));
        list.add(new CustomObject("X"));
        list.add(new CustomObject("Aa"));

        list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty()));

        for (CustomObject obj : list) {



In the above program, we’ve defined a CustomObject class with a String property, customProperty.

We’ve also added a constructor that initializes the property, and a getter function getCustomProperty() which returns customProperty.

In the main() method, we’ve created an array list of custom objects list, initialized with 5 objects.

For sorting the list with the given property, we use list‘s sort() method. The sort() method takes the list to be sorted (final sorted list is also the same) and a comparator.

In our case, the comparator is a lambda which

  • takes two objects from the list o1 and o2,
  • compares the two object’s customProperty using compareTo() method,
  • and finally returns positive number if o1’s property is greater than o2’s, negative if o1’s property is lesser than o2’s, and zero if they are equal.

Based on this, list is sorted based on least property to greatest and stored back to list.


Python Example for Beginners

Two Machine Learning Fields

There are two sides to machine learning:

  • Practical Machine Learning:This is about querying databases, cleaning data, writing scripts to transform data and gluing algorithm and libraries together and writing custom code to squeeze reliable answers from data to satisfy difficult and ill defined questions. It’s the mess of reality.
  • Theoretical Machine Learning: This is about math and abstraction and idealized scenarios and limits and beauty and informing what is possible. It is a whole lot neater and cleaner and removed from the mess of reality.

Data Science Resources: Data Science Recipes and Applied Machine Learning Recipes

Introduction to Applied Machine Learning & Data Science for Beginners, Business Analysts, Students, Researchers and Freelancers with Python & R Codes @ Western Australian Center for Applied Machine Learning & Data Science (WACAMLDS) !!!

Latest end-to-end Learn by Coding Recipes in Project-Based Learning:

Applied Statistics with R for Beginners and Business Professionals

Data Science and Machine Learning Projects in Python: Tabular Data Analytics

Data Science and Machine Learning Projects in R: Tabular Data Analytics

Python Machine Learning & Data Science Recipes: Learn by Coding

R Machine Learning & Data Science Recipes: Learn by Coding

Comparing Different Machine Learning Algorithms in Python for Classification (FREE)

Disclaimer: The information and code presented within this recipe/tutorial is only for educational and coaching purposes for beginners and developers. Anyone can practice and apply the recipe/tutorial presented here, but the reader is taking full responsibility for his/her actions. The author (content curator) of this recipe (code / program) has made every effort to ensure the accuracy of the information was correct at time of publication. The author (content curator) does not assume and hereby disclaims any liability to any party for any loss, damage, or disruption caused by errors or omissions, whether such errors or omissions result from accident, negligence, or any other cause. The information presented here could also be found in public knowledge domains.