Comparator with Lambda Examples


In this example we will make use of Landba expression to sort students by name using Comparator

Student.java
package com.company;

public class Student {

    public Student(int studentId, String studentName) {
        this.studentId = studentId;
        this.studentName = studentName;
    }

    private int studentId;
    private String studentName;
    private int studentAge;
    private boolean studentGender;


    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public int getStudentAge() {
        return studentAge;
    }

    public void setStudentAge(int studentAge) {
        this.studentAge = studentAge;
    }

    public boolean isStudentGender() {
        return studentGender;
    }

    public void setStudentGender(boolean studentGender) {
        this.studentGender = studentGender;
    }

    @Override
    public String toString() {
        return "Student{" +
                "studentId=" + studentId +
                ", studentName='" + studentName + '\'' +
                '}';
    }
}
Main.java
package com.company;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        List<Student> students = new ArrayList<>();
        students.add(new Student(1, "Sam"));
        students.add(new Student(2, "Mike"));
        students.add(new Student(3, "Alex"));
        students.add(new Student(3, "Richard"));
        students.add(new Student(3, "Andrew"));
        students.add(new Student(3, "Andy"));

        Comparator<Student> sortByName = (Student s1, Student s2)
                -> s1.getStudentName().compareTo(s2.getStudentName());

        System.out.println("Before Sort: "+ students);
        students.sort(sortByName);
        System.out.println("After Sort: "+ students);
    }
}
Output:

Before Sort: [Student{studentId=1, studentName='Sam'}, Student{studentId=2, studentName='Mike'}, Student{studentId=3, studentName='Alex'}, Student{studentId=3, studentName='Richard'}, Student{studentId=3, studentName='Andrew'}, Student{studentId=3, studentName='Andy'}]

After Sort: [Student{studentId=3, studentName='Alex'}, Student{studentId=3, studentName='Andrew'}, Student{studentId=3, studentName='Andy'}, Student{studentId=2, studentName='Mike'}, Student{studentId=3, studentName='Richard'}, Student{studentId=1, studentName='Sam'}]

Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap