जावा लूप में, if
कथन के बजाय boolean
ध्वज का उपयोग करना अधिक कुशल है?क्या यह ध्वज या एक खंड का उपयोग करने के लिए अधिक कुशल है?
कोड के इन दो बिट्स पर एक नज़र डालें।
एक ध्वज का उपयोग करना:
public boolean isSomethingForAnyone() {
boolean flag = false;
for (Item item : listOfItems) {
flag = flag || item.isSomething();
}
return flag;
}
एक if
बयान का उपयोग करना: if
बयान के साथ
public boolean isSomethingForAnyone() {
for (Item item : listOfItems) {
if (item.isSomething())
return true;
}
return false;
}
विधि निश्चित रूप से तेजी से करता है, तो isSomething()
वापसी true
पहले यात्रा पर है। लेकिन, क्या यह औसत पर तेज़ है या क्या ब्रांचिंग इसे धीमा कर देती है कि यह धीमी है? इसके अलावा, यदि लूप तेज है तो स्थिति अलग है? यहां मैंने सादगी के लिए प्रत्येक लूप का उपयोग किया, जो मुझे लगता है कि काउंटर के साथ एक सरणी पर फिर से धीमा होने से धीमा है।
प्रत्येक के लिए नियमित रूप से लूप के लिए धीमी नहीं है। – JNL
पहले सभी तत्वों पर हमेशा पुनरावृत्त होगा; दूसरा आइटम बंद हो जाएगा जब एक आइटम सच है। –