Comparator 使って思ったこと

Comparator を使ったプログラムをつくった。

そして、思った。

いつもながら・・・ だな。( ̄。 ̄;)

jp\yucchi\lambda_charenge_1\Bust.java
package jp.yucchi.lambda_charenge_1;

class Bust {

    private int bustSize;
    private String evaluation;

    public Bust(int bustSize, String type) {
        this.bustSize = bustSize;
        this.evaluation = type;
    }

    public int getBustSize() {
        return bustSize;
    }

    public String getEvaluation() {
        return evaluation;
    }
}
jp\yucchi\lambda_charenge_1\Lambda_charenge_1.java
package jp.yucchi.lambda_charenge_1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

public class Lambda_charenge_1 {

    public static void main(String[] args) {

        ArrayList al = new ArrayList();
        al.add(new Bust(90, "巨乳"));
        al.add(new Bust(70, "貧乳"));
        al.add(new Bust(100, "爆乳"));
        al.add(new Bust(80, "普通乳"));
        Collections.sort(al, new Comparator() {
            @Override
            public int compare(Bust o1, Bust o2) {
                return (o1.getBustSize() < o2.getBustSize() ? -1 : o1.getBustSize() == o2.getBustSize() ? 0 : 1);
            }
        });

        Iterator it = al.iterator();
        while (it.hasNext()) {
            Bust data = it.next();
            System.out.println(data.getBustSize() + ": " + data.getEvaluation());
        }
    }
}

実行結果は次のようになります。

run:
70: 貧乳
80: 普通乳
90: 巨乳
100: 爆乳
構築成功 (合計時間: 0 秒)

ここで、さらに思った。

Java 8 で採用される Lambda を使えば Comparator の部分がすっきりするんだろうか?

さらに思った。

ところで、Lambda って何?

よくよく考えたら Lambda の前にやろうとしていたクロージャとかいうものもさっぱり知らない。

そろそろ Lambda について調べ始めなければ JDK 8 がリリースされたとしても時代の波に乗れない。

ここで、さらに思った。

Lambda も無かったことにならないかなぁ・・・(後ろ向き・・・

で、このプログラムを Lambda を使ってすっきりさせることができるのか?

私には絶対無理(>_<)

いったい、何をどうすればいいのか解らない。

当然といえば当然だ。

Lambda を知らないからね。

ただ、本当にこのプログラムを Lambda を使えばすっきりしたコードに変更可能なのかが知りたい。

誰か教えてけろ。(いつもながら努力は嫌い (^_^;)

Hatena タグ: