आप java.util.Arrays.binarySearch एक सरणी में एक तत्व को खोजने के लिए उपयोग कर सकते हैं या इसके अस्तित्व की जांच के लिए:
import java.util.Arrays;
...
char[] array = new char[] {'a', 'x', 'm'};
Arrays.sort(array);
if (Arrays.binarySearch(array, 'm') >= 0) {
System.out.println("Yes, m is there");
}
ध्यान रखें कि बाइनरी खोज के लिए सही तरीके से काम करने के लिए, सरणी को सॉर्ट करने की आवश्यकता है। इसलिए उदाहरण में Arrays.sort() को कॉल करें। यदि आपका डेटा पहले ही सॉर्ट किया गया है, तो आपको ऐसा करने की आवश्यकता नहीं है। इस प्रकार, यदि आप पहले अपनी सरणी को सॉर्ट करना चाहते हैं तो यह सख्ती से एक-लाइनर नहीं है। दुर्भाग्यवश, Arrays.sort() सरणी के संदर्भ को वापस नहीं करता है - इस प्रकार सॉर्ट और बाइनरी खोज (यानी Arrays.binarySearch (Arrays.sort (myArray), कुंजी) को गठबंधन करना संभव नहीं है)।
यदि आप अतिरिक्त आवंटन का भुगतान कर सकते हैं, Arrays.asList() का उपयोग करके क्लीनर लगता है।
क्या यह कोई सूची नहीं बनाता है? – danben
सूची सरणी के चारों ओर सिर्फ एक रैपर है, इसलिए यह बहुत हल्का है। बेशक, "इसमें शामिल है" सरणी के माध्यम से फिर से समाप्त होने जा रहा है, तो बिंदु क्या है? –
@danben यकीन है, लेकिन यह एक उपयुक्त एक लाइनर है। –