package nilpointer.net;
public class Student {
private String id;
private String name;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public Student() {
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
package nilpointer.net;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<Student> students = new ArrayList<Student>();
students.add(new Student("st01", "Name 1", 23));
students.add(new Student("st02", "Name 2", 21));
students.add(new Student("st03", "Name 3", 24));
System.out.println("Ascending Order");
students.stream().sorted((student1, student2) -> student1.getAge() - student2.getAge()).forEach(student -> {
System.out.println(student.toString());
System.out.println("--------------------------------------");
});
System.out.println("\nDescending Order");
students.stream().sorted((student1, student2) -> student2.getAge() - student1.getAge()).forEach(student -> {
System.out.println(student.toString());
System.out.println("--------------------------------------");
});
System.out.println("\nSort with Condition");
students.stream().filter(student -> student.getAge() > 21)
.sorted((student1, student2) -> student1.getAge() - student2.getAge()).forEach(student -> {
System.out.println(student.toString());
System.out.println("--------------------------------------");
});
}
}
Ascending Order
Student [id=st02, name=Name 2, age=21]
--------------------------------------
Student [id=st01, name=Name 1, age=23]
--------------------------------------
Student [id=st03, name=Name 3, age=24]
--------------------------------------
Descending Order
Student [id=st03, name=Name 3, age=24]
--------------------------------------
Student [id=st01, name=Name 1, age=23]
--------------------------------------
Student [id=st02, name=Name 2, age=21]
--------------------------------------
Sort with Condition
Student [id=st01, name=Name 1, age=23]
--------------------------------------
Student [id=st03, name=Name 3, age=24]
--------------------------------------