सबसे पहले, जावा में ऑब्जेक्ट सरणी List
एस से बहुत कम हैं, इसलिए यदि संभव हो तो आपको वास्तव में उनका उपयोग करना चाहिए। Arrays.asList
का उपयोग कर List<String>
के रूप में आप String[]
का दृश्य बना सकते हैं।
दूसरा, जावा में लैम्ब्डा अभिव्यक्ति या विधि संदर्भ नहीं हैं, इसलिए ऐसा करने का कोई शानदार तरीका नहीं है ... और String
के रूप में इसके नाम से एक विधि का संदर्भ देना अत्यधिक त्रुटि प्रवण है और अच्छा विचार नहीं है। ,
public static final Function<String, String> TO_LOWER =
new Function<String, String>() {
public String apply(String input) {
return input.toLowerCase();
}
};
// returns a view of the input list with each string in all lower case
public static List<String> toLower(List<String> strings) {
// transform in Guava is the functional "map" operation
return Lists.transform(strings, TO_LOWER);
}
इसे में एक नई सरणी या List
हर String
की लोअरकेस संस्करण बनाने और को कॉपी के विपरीत इस करता है:
जिसके अनुसार, Guava आप क्या चाहते हैं कुछ बुनियादी कार्यात्मक तत्व है कि आप करने की अनुमति देगा प्रदान करता है बनाए गए मूल List
के तत्वों को फिर से सक्रिय न करें और बहुत कम स्मृति की आवश्यकता होती है।
जावा 8 के साथ, लैम्ब्डा अभिव्यक्ति और विधि संदर्भ अंत में जावा के लिए map
की तरह उच्च क्रम कार्यों के लिए विस्तार के तरीकों के साथ जोड़ा जाना चाहिए, इस काफी आसान (कुछ इस तरह) बनाने:
List<String> lowerCaseStrings = strings.map(String#toLowerCase);
वह लाइन क्या करती है? यह बिल्कुल अभिव्यक्तिपूर्ण नहीं है। – skaffman
@ स्काफमैन - PHP का स्ट्रेटोलॉवर() फ़ंक्शन जावा की .toLowerCase() के समान, एक स्ट्रिंग कम cased देता है। उपर्युक्त कार्य $ सरणी में प्रत्येक तत्व को strtolower() फ़ंक्शन (मानचित्र) लागू करता है, इस प्रकार निचले भाग वाले सभी तत्वों के साथ एक सरणी लौटाता है। – mellowsoon