クラスのソートサンプル

[2005/01/08]

import java.util.Arrays;
import java.util.Comparator;

// ユニットクラス
class Unit {
  float threshold=0;
  float value=0;
  int index;

  Unit() {}
}

public class Foo implements Comparator {
  static Unit u[];
  public static void main(String args[]) {
    // ユニットの生成と初期値決定
    u=new Unit[50];
    for (int i=0; i<u.length; i++) {
       u[i]=new Unit();
       u[i].value=(int)(Math.random()*99);
     }
    // コンパレータの生成
    Comparator u_cmp=new Foo();
    // ここで上のコンパレータを指定して Array.sort() を呼び
     // 出すと指定したクラス内の compare メソッドが呼ばれる
     Arrays.sort(u, u_cmp);
  }
  public int compare (Object _a, Object _b) {
    Unit a=(Unit)_a, b=(Unit)_b;
     if (a.value>b.value) return -1; // 大きい方が上位になる
     else if (a.value<b.value) return 1;
     return 0;
  }
}

上へ