Comparator 使って思ったこと
Comparator を使ったプログラムをつくった。
そして、思った。
いつもながら・・・ だな。( ̄。 ̄;)
jp\yucchi\lambda_charenge_1\Bust.java |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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<Bust> 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<Bust>() { @Override public int compare(Bust o1, Bust o2) { return (o1.getBustSize() < o2.getBustSize() ? -1 : o1.getBustSize() == o2.getBustSize() ? 0 : 1); } }); Iterator<Bust> 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 を使えばすっきりしたコードに変更可能なのかが知りたい。
誰か教えてけろ。(いつもながら努力は嫌い (^_^;)
TAGS: Java | 2012年5月20日6:13 AM
Trackback URL