फिर से, Arrays.binarySearch(Object[] a, Object key)
के लिए तुलनित्र की आवश्यकता नहीं है जब तक कि वस्तुओं के प्रकार तुलनीय हैं, लेकिन लैम्ब्डा अभिव्यक्तियों के साथ यह अब आसान तरीका है। String::compareTo
उदाहरण के लिए::
सीधे शब्दों में विधि संदर्भ के साथ तुलनित्र की जगह
Arrays.binarySearch(someStringArray, "The String to find.", String::compareTo);
तुम भी
Arrays.binarySearch(someStringArray, "The String to find.", (a,b) -> a.compareTo(b));
इस्तेमाल कर सकते हैं लेकिन फिर भी lambdas से पहले, वहाँ हमेशा गुमनाम वर्गों थे:
Arrays.binarySearch(
someStringArray,
"The String to find.",
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
स्रोत
2015-04-16 19:40:54
+1 लागू करने के लिए कंप्रेसर –
'तुलनाकर्ता' एक सामान्य प्रकार है, इसलिए 'उदाहरणकंपेटर' को चेतावनियों से बचने के लिए शायद 'तुलनाकर्ता' लागू करना चाहिए। –
theisenp
स्ट्रिंग तुलनित्र के लिए, उन्हें तुलना करने से पहले लोअरकेस (या अपरकेस) स्ट्रिंग को ध्यान में रखें अन्यथा आपको यह आदेश प्राप्त करना चाहिए ए-ज़ा-जे –