जाना चाहिए कि मैं कुछ foreach
पाश इस तरह है का पता लगाने?पिछले foreach पाश यात्रा
(माफ करना अगर यह एक डुप्लिकेट किए गए सवाल, मैं यहाँ नहीं मिला था इस तरह की कुछ सवाल है)
जाना चाहिए कि मैं कुछ foreach
पाश इस तरह है का पता लगाने?पिछले foreach पाश यात्रा
(माफ करना अगर यह एक डुप्लिकेट किए गए सवाल, मैं यहाँ नहीं मिला था इस तरह की कुछ सवाल है)
वहाँ नहीं है, How does the Java 'for each' loop work?
पर एक नज़र डालें आप अपने पाश स्पष्ट रूप से एक iterator या किसी पूर्णांक काउंटर का उपयोग करने को बदलना होगा।
एक इटरेटर वास्तव में मेरी मदद कर सकता है! धन्यवाद। – mhery
वहाँ विधि में कोई निर्माण करता है, तो वर्तमान तत्व भी पिछले तत्व है की जाँच करने के लिए है। इसके अलावा आप HashSet
का उपयोग कर रहे हैं जो रिटर्न ऑर्डर की गारंटी नहीं देता है। भले ही आप इसे देखना चाहते हैं उदा। एक सूचकांक i
के साथ अंतिम तत्व हमेशा एक अलग हो सकता है।
ए Set
इसके भीतर वस्तुओं के ऑर्डर की गारंटी नहीं देता है। आप एक बार Set
के माध्यम से लूप कर सकते हैं और "abc" को "अंतिम आइटम" के रूप में पुनर्प्राप्त कर सकते हैं और अगली बार जब आप पाएंगे कि "hij" Set
में "अंतिम आइटम" है।
कहा जा रहा है कि, यदि आप आदेश के बारे में चिंतित नहीं हैं और आप सिर्फ यह जानना चाहते हैं कि मनमाने ढंग से "आखिरी वस्तु" क्या है, तो वर्तमान क्षण में Set
को देखते हुए, ऐसा करने के तरीके में नहीं बनाया गया है। आपको काउंटर का उपयोग करना होगा।
अन्य answears पूरी तरह से पर्याप्त हैं, बस दिए गए प्रश्न के लिए इस समाधान को जोड़ना।
Set<String> names = new HashSet<>();
//some code
int i = 0;
for (String name: names) {
if(i++ == names.size() - 1){
// Last iteration
}
//some code
}
धन्यवाद। अंतिम लूप की जांच करने के लिए प्रत्येक पाश के लिए अच्छा समाधान। हालांकि यह एक इटरेटर के साथ लूप के लिए उपयोग करने के समान ही है। फिर भी, अच्छा समाधान! – NiallMitch14
नहीं, सेट इंटरफ़ेस पर ऐसी कोई विधि नहीं है। वह अमूर्तता एक आदेश का संकेत नहीं देती है, केवल यह एक संग्रह है जहां हर तत्व अद्वितीय है। – duffymo
काउंटर के बिना आप इसे जावा में नहीं कर सकते हैं। – abbath
कृपया बताएं, यदि आप जानते हैं कि वर्तमान तत्व अंतिम है तो आप क्या करना चाहते हैं। ध्यान रखें, 'हैशसेट' पर प्रत्येक के लिए आदेश जारी नहीं रहेगा। – Kent