Bu, sorunumun komut deseni kullanılarak çözüldüğü başka bir soruyu (Reuse code for looping through multidimensional-array) takip etmektir. Benim problemim, iki boyutlu bir dizinin her elemanı üzerinde işlem yapan çok sayıda yöntemin ve dolayısıyla çok fazla kodun benim olduğumdu. Bunun yerine Komut düzeni lambda ifadeleriyle nasıl değiştirilir?
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];
}
}
}
... ben böyle çözülür ... yani gibi birçok yöntemler sahip:
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];
}
});
}
biz Java lambda ifadeleri olsaydı Şimdi, bu nasıl kısaltılabilir olabilir? Bu genel olarak nasıl görünüyor? (Kötü İngilizce'm için özür dilerim)
Cevabınız için çok teşekkür ederim. "Arrays.stream" -method'un ne yaptığını açıklar mısınız? – subarachnid
Sadece [Akış] (http://lambdadoc.net/api/index.html?java/util/stream/Stream.html) döndürür :) [deneyebilirsiniz] (http://jdk8.java.net/ download.html) kendiniz. – aim