- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to sort a list by name using a Comparator interface in Java?
Comparator interface can be used to order the objects of user-defined classes. It is capable of comparing two objects of two different classes. We can sort a list of objects where we can't modify the object’s source code to implement Comparable interface. A lambda expression can't be executed on its own and used to implement methods that are declared in a functional interface.
In the below example, we need to sort a list by name using the Comparator interface and Stream API with the help of lambda expressions.
Example
import java.util.*; import java.util.function.*; import java.util.stream.*; public class ListSortByNameTest { public static void main(String[] args) { List<Person> arrayList = new ArrayList<Person>(); Person p = new Person(); p.setName("Adithya"); p.setAge(20); arrayList.add(p); Person p1 = new Person(); p1.setName("Jai"); p1.setAge(25); arrayList.add(p1); Person p2 = new Person(); p2.setName("Surya"); p2.setAge(33); arrayList.add(p2); Person p3 = new Person(); p3.setName("Ravi"); p3.setAge(35); arrayList.add(p3); Stream<Person> stream = arrayList.stream(); stream.forEach(x -> System.out.println("Name: [" + x.getName()+"] Age: ["+x.getAge()+"]")); Comparator<Stream> byPersonName = (Person p4, Person p5) -> p4.getName().compareTo(p5.getName()); Stream<Person> sorted = arrayList.stream().sorted(byPersonName); sorted.forEach(e -> System.out.println("Sorted Name: [" + e.getName()+"] Age: ["+e.getAge()+"]")); } } // Person class class Person { public String name; public int age; public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } }
Output
Name: [Adithya] Age: [20] Name: [Jai] Age: [25] Name: [Surya] Age: [33] Name: [Ravi] Age: [35] sorted Name: [Adithya] Age: [20] sorted Name: [Jai] Age: [25] sorted Name: [Ravi] Age: [35] sorted Name: [Surya] Age: [33]
- Related Articles
- How to sort List in descending order using Comparator in Java
- How to sort a list using Comparator with method reference in Java 8?\n
- Sort Java Vector in Descending Order using Comparator
- Sort LinkedHashMap by values using Comparable Interface in Java
- Sort LinkedHashMap by Keys using Comparable Interface in Java
- Java Program to Search User Defined Object From a List By using Binary Search Comparator
- How to sort an array with customized Comparator in Java?
- Sort ArrayList in Descending order using Comparator with Java Collections
- Sort an Array of Triplet using Java Comparable and Comparator
- How to use comparator interface for Listview in Android?
- Python Program to Sort A List Of Names By Last Name
- Java Program to sort String Stream with reversed Comparator
- How to sort a collection by using Stream API with lambdas in Java?
- Can we use Comparator with list in Java?
- How to write the comparator as a lambda expression in Java?

Advertisements