Write a program to sort object using Comparator and Comparable
We will sort object of Student class. We will sort students by marks in ascending order.
Comparable:
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Student implements Comparable{ private Integer id; private String name; private int marks; public Student() { } public void setName(String name) { this.name = name; } public Student(Integer id, String name, int marks) { this.id = id; this.name = name; this.marks = marks; } @Override public int compareTo(Student stu) { if(this.marks < stu.marks){ return -1; }else if(this.marks > stu.marks){ return 1; }else{ return 0; } } public static void main(String[] args) { List students = new ArrayList<>(); students.add(new Student(1, "A", 67)); students.add(new Student(2, "B", 35)); students.add(new Student(3, "C", 80)); students.add(new Student(4, "D", 17)); System.out.println("Elements before sorting"); for (Student student : students) { System.out.println("id = "+ student.id + " name = "+ student.name + " marks = "+ student.marks); } Collections.sort(students); System.out.println("Elements after sorting"); for (Student student : students) { System.out.println("id = "+ student.id + " name = "+ student.name + " marks = "+ student.marks); } } }
Elements before sorting id = 1 name = A marks = 67 id = 2 name = B marks = 35 id = 3 name = C marks = 80 id = 4 name = D marks = 17 Elements after sorting id = 4 name = D marks = 17 id = 2 name = B marks = 35 id = 1 name = A marks = 67 id = 3 name = C marks = 80
Comparator
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Student{
private Integer id;
private String name;
private int marks;
public Student() {
}
public void setName(String name) {
this.name = name;
}
public Student(Integer id, String name, int marks) {
this.id = id;
this.name = name;
this.marks = marks;
}
public int getMarks() {
return marks;
}
public static void main(String[] args) {
List students = new ArrayList<>();
students.add(new Student(1, "A", 67));
students.add(new Student(2, "B", 35));
students.add(new Student(3, "C", 80));
students.add(new Student(4, "D", 17));
System.out.println("Elements before sorting");
for (Student student : students) {
System.out.println("id = "+ student.id +
" name = "+ student.name +
" marks = "+ student.marks);
}
Collections.sort(students, new StudentComparator());
System.out.println("Elements after sorting");
for (Student student : students) {
System.out.println("id = "+ student.id +
" name = "+ student.name +
" marks = "+ student.marks);
}
}
}
class StudentComparator implements Comparator{
@Override
public int compare(Student stu1, Student stu2) {
if(stu1.getMarks() < stu2.getMarks()){
return -1;
}else if(stu1.getMarks() > stu2.getMarks()){
return 1;
}else{
return 0;
}
}
}
Elements before sorting id = 1 name = A marks = 67 id = 2 name = B marks = 35 id = 3 name = C marks = 80 id = 4 name = D marks = 17 Elements after sorting id = 4 name = D marks = 17 id = 2 name = B marks = 35 id = 1 name = A marks = 67 id = 3 name = C marks = 80
Comments
Post a Comment