私はルビーの観点からいくつかの関数型Javaに来ています
ルビーではこのようなことができます
mapped_array = [1,2,3].map(&:to_s)
これは、各オブジェクトでto_sメンバー関数を呼び出すことにより、配列を変換(マップ)することを評価します。
mapped_array = []
[1,2,3].each { |e| mapped_array << e.to_s }
Javaでも同様のことをしたいと思います。つまり、各オブジェクトで_2()メソッドを呼び出して、Product-3(fj.P3)のリストを変換します。
List<P2<Integer, Double>> aListOfP2;
final List<Double> costs = transform(aListOfP2, Converters.<Integer, Double>second());
だから私はどこかにメソッドを定義しなければなりませんでした
public static final <A,B> Function<P2<A,B>,B> second() {
return new Function<P2<A, B>, B>() {
public B apply(final P2<A, B> from) {
return from._2();
}
};
};
しかし、最初の要素を取得したい場合、それは別のメソッドです... P3から2番目の要素を取得したい場合、それは別のメソッドです。
質問は...ルビーで利用できるようなメカニズムがない場合、これを達成するための最も一般的な方法は何ですか?