यह एक अन्य प्रश्न (Reuse code for looping through multidimensional-array) का अनुवर्ती प्रकार है जहां कमांड-पैटर्न का उपयोग कर मेरी विशिष्ट समस्या का समाधान किया गया था। मेरी समस्या यह थी कि मेरे पास दो-आयामी सरणी के प्रत्येक तत्व पर संचालन करने के कई तरीके थे - और इसलिए बहुत सारे डुप्लिकेट कोड। इसके बजाय तो जैसे कई तरीकों होने के ...कमांड पैटर्न को लैम्ब्डा एक्सप्रेशन द्वारा कैसे बदला जा सकता है?
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];
}
}
}
... मैं इसे इस तरह हल:
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" -method क्या करता है? – subarachnid
यह सिर्फ [स्ट्रीम] लौटाता है (http://lambdadoc.net/api/index.html?java/util/stream/Stream.html) :) आप [कोशिश कर सकते हैं] (http://jdk8.java.net/ download.html) स्वयं। – aim