パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

ArrayListにしたクラス内の変数でソートする

2014-03-10 | Java
Collection.sortなるものでソートが可能

ArrayList<StageUnit> stageUnitList = new ArrayList<StageUnit>();
こんな感じで定義されているStageUnitクラス内にpublic int hpなんて変数が定義されているとする

呼び出し方
Collections.sort(stageUnitList,new MyComparator());

ソート時比較用のクラスが必要
public class MyComparator implements Comparator {  
  public int compare(Object arg0,Object arg1) {
    //ここは作りが雑
    StageUnit su0 = (StageUnit)arg0;
    StageUnit su1 = (StageUnit)arg1;
    
    int ret=0;  
    if (su0.hp>su1.hp)ret=1;
    if (su1.hp>su0.hp)ret=-1;
    return ret;    //0:等しい。1:より大きい。-1:より小さい  
 }    
}

インポートにはこんなのが必要
import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  

ここではMyComparatorクラスを変数で比較しているけど
もっと複雑な計算も可能でこれはいつかどこかで使えそう


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。