私のオフィスの一人の建築家が、コンパレータと同等の違いがあると私に話したら、 Comparatorは、2つの異なるクラスオブジェクト間を比較します。ここでは、同等クラスは同じクラス内で比較されます。私はクラス訓練生とクラスを持っています。私は学生と訓練生のクラスの中で同時に名前を並べ替えたい。学生の名前はほとんどなく、訓練生にはほとんど名前がありません。これらすべての名前を自然順にソートしたい。達成することは可能ですか?以下はエラーのあるコードです。Javaのコンパレータを使用したカスタムソート
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Student {
String empName;
Student(String empName) {
this.empName = empName;
}
}
class Trainee {
String studName;
Trainee(String studName) {
this.studName = studName;
}
}
public class Sort implements Comparator {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student st = new Student("caroline");
Student st1 = new Student("elley");
Student st2 = new Student("fannah");
Trainee tr = new Trainee("aundh");
Trainee tr1 = new Trainee("Rohit");
Trainee tr2 = new Trainee("Shammi");
List list = new ArrayList<>();
list.add(st);
list.add(st1);
list.add(st2);
ArrayList list2 = new ArrayList<>();
list2.add(tr);
list2.add(tr1);
list2.add(tr2);
Collections.sort(Student, new Comparator<Trainee>() {
@Override
public int compare(Student s, Trainee t) {
// TODO return 1 if rhs should be before lhs
return s.empName.compareToIgnoreCase(t.studName);
}
});
}
}