Click here to watch in Youtube :
https://www.youtube.com/watch?v=jkYoSzaLsPY&list=UUhwKlOVR041tngjerWxVccw
public class Person
{
private String name;
private int age;
public Person(String name, int age)
{
super();
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
@Override
public String toString()
{
return "Person [name=" + name + ", age=" + age + "]";
}
}
NonLambdaDemo.java import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* Before JDK 8
*
* With out lambda expression how to sort the list of person by name
*
*/
public class NonLambdaDemo
{
public static void main(String[] args)
{
List<Person> personList = Arrays.asList(
new Person("Carla", 33), new Person("Balu", 32),
new Person("Bharth", 40), new Person("Ajay", 31));
System.out.println("------------Before Sort by name---------");
printAll(personList);
System.out.println("----------------------------------------");
/*
* Sort list by Name,Before JDK 8
*/
Collections.sort(personList, new Comparator<Person>()
{
@Override
public int compare(Person p1, Person p2)
{
return p1.getName().compareTo(p2.getName());
}
});
System.out.println("\n------------After Sort by name---------");
/*
* Create a method that prints all elements in the list.
*/
printAll(personList);
System.out.println("----------------------------------------");
}
private static void printAll(List<Person> personList)
{
for (Person person : personList)
{
System.out.println(person);
}
}
}
Output ------------Before Sort by name---------
Person [name=Carla, age=33]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Ajay, age=31]
----------------------------------------
------------After Sort by name---------
Person [name=Ajay, age=31]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Carla, age=33]
----------------------------------------
LambdaDemo.javaimport java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* JDK 8
*
* With lambda expression how to sort the list of person by name.
*
*/
public class LambdaDemo
{
public static void main(String[] args)
{
List<Person> personList = Arrays.asList(
new Person("Carla", 33), new Person("Balu", 32),
new Person("Bharth", 40), new Person("Ajay", 31));
System.out.println("------------Before Sort by name---------");
printAll(personList);
System.out.println("----------------------------------------");
/*
* Sort list by Name, with JDK 8
*/
Collections.sort(personList,
(p1, p2) -> p1.getName().compareTo(p2.getName()));
System.out.println("\n------------After Sort by name---------");
/*
* Create a method that prints all elements in the list.
*/
printAll(personList);
System.out.println("----------------------------------------");
}
private static void printAll(List<Person> personList)
{
for (Person person : personList)
{
System.out.println(person);
}
}
}
Output------------Before Sort by name---------
Person [name=Carla, age=33]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Ajay, age=31]
----------------------------------------
------------After Sort by name---------
Person [name=Ajay, age=31]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Carla, age=33]
----------------------------------------
https://sites.google.com/site/ramj2eev1/home/javabasics/LambdaDemo_sort_pl_App.zip?attredirects=0&d=1
No comments:
Post a Comment