タグ

2010年6月14日のブックマーク (2件)

  • 楽しいJava入門 java.util.Comparator

    オブジェクトの比較方法もいろいろあります。よく使う標準の比較方法は、クラスの中にcompareToで指定すればよかったですね。第5章の続編として、この章では他の比較方法を使いたい場合を解説します。 さあ、今日はいやーな予防接種の日です。普段背の順で並んでいる梅組の子供たちも、今日は出席番号順に並ばなければなりません。第5章で、クラスStudentに、背をもとにオブジェクトを比較するメソッドcompareToを作りましたが、出席番号をもとに比較するには、どうすればいいのでしょう? 実はクラスStudentの中ではなく、Comparator(java.util.Comparator)を実装する別のクラスをわざわざ作って、その中のメソッドcompareで比較方法を定義してやります。次のようになります。 import java.util.Comparator; public class Stude

    ytRino
    ytRino 2010/06/14
    ソート,Comparator
  • オブジェクトを手軽にソートする

    int[] ia = {10, 5, 30, 20, -18, 0, 50}; // 適当なint型の配列 java.util.Arrays.sort(ia); この結果、iaが昇順にソートされます(-18, 0, 5, 10, 20, 30, 50)。iaの中身が書き換えられることに注意してください(sortの戻り値はvoidです)。ソートのアルゴリズムは修正クイックソートが用いられています。クイックソートは最悪の場合(ソート済のデータ)の時間計算量がデータ数nの2乗に比例することが知られていますが、このメソッドではそのような場合にも(n*log n)に比例する時間で実行できる修正がなされています。 オブジェクトをソートする 単に数値型の配列をソートするのではなく、データをフィールドに持つオブジェクトをソートすることもあります。例えば、String型のフィールドを持つDataクラスを、そ

    オブジェクトを手軽にソートする
    ytRino
    ytRino 2010/06/14
    ソート,Comparator