7
これは、別の質問(Reuse code for looping through multidimensional-array)へのフォローアップのようなもので、私の特定の問題がcommand-patternを使って解決されました。私の問題は、2次元配列のすべての要素に対して操作を実行する複数のメソッドがあることです。したがって、重複したコードがたくさんあります。代わりに、そう...コマンドパターンはどのようにラムダ式に置き換えることができますか?
void method() {
for (int i = 0; i < foo.length; i++) {
for (int j = 0; j < foo[i].length; j++) {
// perform specific actions on foo[i][j];
}
}
}
のような多くの方法があるの...私はこのようにそれを解決:私たちはJavaでラムダ式を持っていた場合
interface Command {
void execute(int i, int j);
}
void forEach(Command c) {
for (int i = 0; i < foo.length; i++) {
for (int j = 0; j < foo[i].length; j++) {
c.execute(i, j);
}
}
}
void method() {
forEach(new Command() {
public void execute(int i, int j) {
// perform specific actions on foo[i][j];
}
});
}
さて、どのようにこれを短縮することができますか?それはどのように一般的に見えるでしょうか? (私の貧しい私の英語には申し訳ありません)
ありがとうございました。 "Arrays.stream"メソッドが何をしているのか説明できますか? – subarachnid
それはちょうど[ストリーム](http://lambdadoc.net/api/index.html?java/util/stream/Stream.html)を返します:)あなたは[試すことができます](http://jdk8.java.net/ download.html)をご利用ください。 – aim