तो अगर मैं एक Name
वस्तु है और प्रकार Name
(names
) के एक ArrayList
है, और मुझे पता लगाने के लिए कि क्या नामों की सूची को किसी दिए गए Name
वस्तु (n
) शामिल हैं चाहते हैं, मैं इसे दो कर सकता है तरीके:जावा बनाम anyMatch व्यवहार होता है
boolean exists = names.contains(n);
या
boolean exists - names.stream().anyMatch(x -> x.equals(n));
हैं कि ये दोनों एक ही व्यवहार करते हैं और उसके बाद क्या होता है अगर nसौंपा गया था के बारे में सोचा होगा मैं विचार कर रहा था?
जैसा कि मैं समझता हूं, अगर तर्क null
है, तो यह true
देता है यदि सूची में null
है। मैं यह anyMatch
कैसे प्राप्त करूं - क्या यह Objects.equals(x, n)
का उपयोग करके होगा?
यदि यह काम करता है, तो कौन सा दृष्टिकोण अधिक कुशल है - क्या यह anyMatch
है क्योंकि यह आलस्य और समांतरता का लाभ उठा सकता है?
'नाम' प्रकार क्या है? – Tunaki
यदि 'नाम' वास्तव में 'ऐरेलिस्ट' है, तो मुझे लगता है कि प्रदर्शन समान होगा। लेकिन अगर यह 'हैशसेट' जैसा कुछ है तो एक 'है' कॉल लगभग निश्चित रूप से अधिक कुशल होगा (क्योंकि इसे वास्तव में तत्वों के माध्यम से लूप करने की आवश्यकता नहीं है)। –
@ जोचिमसौयर उन्होंने * कहा * कि यह एक 'ऐरेलिस्ट' है। यह मानना कम से कम उचित है कि यह सच है। – Marco13