• 締切済み

JavaのArrays.sortについて教えてください

 Javaを勉強している初心者です。 次のプログラムはある学校のある学年の梅組の生徒5人のデータ(出席番号 no、氏名 name、身長 height)を 身長の低い順に並べ替えようとするものです。クラスMainでArrays.sort(ume);を実行するとどんな処理が行われるのか、またクラスStudentのメソッドcompareTo(Object o)はどう関係するのかご教示ください。 import java.util.Arrays; class Student implements Comparable { private int no; private String name; private double height; public Student(int no, String name, double height) { this.no = no; this.name = name; this.height = height; } public int compareTo(Object o) { double h1 = this.height; double h2 = ((Student)o).height; if(h1 == h2) { return 0; } else if(h1 > h2) { return 1; } else { return -1; } } } public class Main { public static void main(String[] args) { Student[] ume = new Student[5]; ume[0] = new Student(2, "木下 薫", 141.5); ume[1] = new Student(5, "湯水 敦", 145.0); ume[2] = new Student(1, "相田 徹", 152.5); ume[3] = new Student(4, "田中 大", 136.0); ume[4] = new Student(3, "橋 航", 145.0); Arrays.sort(ume); } }

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

参考URLに書かれている通りです。 >クラスMainでArrays.sort(ume);を実行するとどんな処理が行われるのか 配列ume がStudent クラスの compareTo を適用して、それぞれの大小関係からソートされます。 >compareTo(Object o)はどう関係するのか 配列の要素を整列(ソート)するときにそれぞれのオブジェクトの順序を決定する必要があります。 Arrays.sort から呼び出されてそれぞれのオブジェクト順序を決める為に使われます。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Arrays.html#sort(java.lang.Object[])
KuroGin
質問者

お礼

BLUEPIXY殿 早速のご回答ありがとうございました。 Arrays.sortとcompareToとの関係がわかりました。 ご提示いただいた参考資料を調べて更に理解を深めるつもりです。                  KuroGin

関連するQ&A