Text in
pink is for using Comparable to sort object and text in
blue is for using Comparator to sort object:
Example.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
class Example{
public static void main(String[] args){
//sort int []
int[] iList = new int[]{5,2,4,1,3};
Arrays.sort(iList);
System.out.println(Arrays.toString(iList));
//sort String[]
String[] sList = new String[]{"John","May","Ann","Emila","Bonny"};
Arrays.sort(sList);
System.out.println(Arrays.toString(sList));
//sort ArrayList
ArrayList<String> sArrList = new ArrayList<>();
sArrList.add("Tree");
sArrList.add("Bee");
sArrList.add("Human");
sArrList.add("Flower");
Collections.sort(sArrList);
System.out.print("[");
for(String item:sArrList) System.out.print(item+",");
System.out.println("]");
//sort Object by comparable
Student[] sOList = new Student[]{
new Student(999),new Student(120),new Student(521)
};
Arrays.sort(sOList);
System.out.println(Arrays.toString(sOList));
//sort Object by comparator
Teacher[] tOList = new Teacher[]{
new Teacher(12,20000),
new Teacher(22,15000),
new Teacher(5,30000)
};
Arrays.sort(tOList,IdComparator);
System.out.println(Arrays.toString(tOList));
Arrays.sort(tOList,SalaryComparator);
System.out.println(Arrays.toString(tOList));
}
static Comparator<Teacher> IdComparator = new Comparator<Teacher>(){
@Override
public int compare(Teacher t1,Teacher t2){
return (int) (t1.getId() - t2.getId());
}
};
static Comparator<Teacher> SalaryComparator = new Comparator<Teacher>(){
@Override
public int compare(Teacher t1,Teacher t2){
return (int)(t1.getSalary()-t2.getSalary());
}
};
}
class Teacher{
private int id;
private int salary;
Teacher(int id, int salary){
this.id = id;
this.salary = salary;
}
public int getId(){
return id;
}
public int getSalary(){
return salary;
}
@Override
public String toString(){
return "Teacher:"+Integer.toString(id)+":"+Integer.toString(salary)+",";
}
}
class Student implements Comparable<Student>{
private int id;
Student(int id){
this.id = id;
}
public int getId(){
return id;
}
@Override
public String toString(){
return "Student:"+Integer.toString(id)+",";
}
@Override
public int compareTo(Student s){
return this.id - s.id;
}
}
Result
[1, 2, 3, 4, 5]
[Ann, Bonny, Emila, John, May]
[Bee,Flower,Human,Tree,]
[Student:120,, Student:521,, Student:999,]
[Teacher:5:30000,, Teacher:12:20000,, Teacher:22:15000,]
[Teacher:22:15000,, Teacher:12:20000,, Teacher:5:30000,]
No comments :
Post a Comment