2009-03-07 10 views
5

में मौजूद है की जाँच करने के:कैसे करता है, तो सरणी में एक तत्व जावा

private int[][] map = new int[400][400]; 

और मैं

map[100][200] 

प्राप्त करने का प्रयास और उस तत्व आरंभ नहीं किया है , क्या मुझे एक कंपाइलर/रनटाइम त्रुटि मिल जाएगी या क्या यह शून्य हो जाएगी? और क्या कोई कार्य यह जांचने के लिए है कि कोई दिया गया तत्व/अनुक्रमणिका मौजूद है या नहीं?

+1

यह सवाल शीर्षक यह वापसी होगी अशक्त स्पष्ट होना करने के लिए संपादित किया जा सकता – Casebash

+0

कृपया tym की title.wastage बदल ..... –

उत्तर

11

जैसा कि आपकी सरणी घोषणा एक आदिम प्रकार का है, आपको कोई कंपाइलर या रनटाइम त्रुटियां नहीं मिलेंगी - 0 का डिफ़ॉल्ट मान वापस कर दिया जाएगा।

यदि आपकी सरणी ऑब्जेक्ट्स की एक सरणी थी, तो सरणी को विशेष रूप से असाइन किए गए किसी भी तत्व के लिए null पकड़ना होगा।

1

सं

आपका सरणी तत्वों केवल काफी बड़ा int रों धारण करने के लिए, इस मामले में कर रहे हैं। तत्व "अस्तित्व" के बारे में जानकारी संग्रहीत करने के लिए कोई जगह नहीं है। इसे आवंटित किया गया है, इस प्रकार यह अस्तित्व में है। जावा में, नए आवंटित int सरणी सभी तत्वों को शून्य में प्रारंभ किया जाएगा।

3

मैं null वापस नहीं लौंगा क्योंकि int एक आदिम प्रकार है। यह डिफ़ॉल्ट int मान वापस करेगा, जो 0 है।

कोई तत्व सेट किया गया है, यह जानने का कोई तरीका नहीं है कि एक अलग बूलियन सरणी रखने से कम।

+0

यदि यह एक कस्टम वर्ग/enum वस्तु की एक सरणी थे, अगर वह वस्तु/सूचकांक सेट नहीं किया गया था? –

+0

@ क्लिक करें उपरोक्त: हाँ। –

2

जावा में, केवल संदर्भ चर को शून्य में प्रारंभ किया जाता है। Primitives appropriate default values वापस करने की गारंटी है। ints के लिए, यह मूल्य 0.

0

आप अपने स्रोत (बाइनरी पर FindBugs) पर checkstyle, pmd, और findbugs उपयोग कर सकते हैं और वे आप इस तरह बातें बता देंगे है।

दुर्भाग्यवश ऐसा नहीं लगता कि वे इस विशेष समस्या को पकड़ते हैं (जो समझ में आता है कि सरणी प्रत्येक सदस्य को 0, शून्य या गलत पर सेट करने की गारंटी देता है)।

उन उपकरणों का उपयोग उदाहरण और कक्षा के सदस्यों (जो सरणी नहीं हैं) पकड़ सकते हैं जिनका उपयोग मूल्य (समान प्रकार की समस्या) होने से पहले किया जा रहा है।

0

एक मृत विषय का बिट लेकिन मुझे यह दुर्घटना से मिला, इसलिए मैं अपना ज्ञान का टुकड़ा रखूंगा (या जो कुछ भी: पी)। आप Arrays का उपयोग कर सकते हैं। अपने सरणी को भरने के लिए जब इसे अमान्य मान के साथ बनाया गया है -1। फिर आप यह जांचने के लिए कि क्या आपने उस विशिष्ट सरणी स्थिति को प्रारंभ किया है या नहीं, तो आप आसानी से एक x x0 कर सकते हैं। बस एक विचार ...

संबंधित मुद्दे