- PR -

Comparableインターフェースについてご質問

1
投稿者投稿内容
tahakoda
ベテラン
会議室デビュー日: 2002/08/17
投稿数: 79
投稿日時: 2004-12-07 13:19
以下の2つのクラスがあるとします。

public class Employee implements Comparable{

private String employeeId;
private String employeeName;

public Employee(String employeeId,String employeeName) {
this.employeeId = employeeId;
this.employeeName = employeeName;
}

public int compareTo(Object target){
return employeeId.compareTo(((Employee)target).employeeId);
}

public String getEmployeeId() {
return employeeId;
}
public String getEmployeeName() {
return employeeName;
}
}
-----------------------------------------------
public class Exam02 {
public static void main(String args[]){
Employee[] empArray = {
new Employee("02","AAA"),
new Employee("01","BBB"),
new Employee("03","CCC")};

Arrays.sort(empArray);

for(int i = 0 ; i < empArray.length ; i++){
Employee emp = empArray[i];
System.out.println(emp.getEmployeeId() + ":"+ emp.getEmployeeName());
}
}
}
-----------------------------------------------ここまで

「Arrays.sort(empArray);」でオブジェクトがソートされる
ようですが「compareToメソッド」が明示的に呼ばれていないのに
何故ソートされるのか理屈が良くわかりません。。

大変初歩的で恐縮ですがご教授頂ければ幸いです。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-12-07 13:38
Arrays.sortの中で呼ばれています。compareToメソッド内でログ出力すると呼ばれていること
がわかるでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)