स्कूल के काम के लिए मुझे एक वर्ग के लिए एक कंस्ट्रक्टर लिखना होगा जिसमें पूर्णांकों की 2-आयामी सरणी हो। कंस्ट्रक्टर एक पारित दो-आयामी सरणी की प्रतिलिपि बनाता है। नीचे वह कोड है जो मेरे पास अब तक है। मेरे पास वर्तमान मुद्दा यह है कि सरणी को कैसे प्रारंभ किया जाए जब पारित सरणी का "कॉलम" आकार अनजान हो। मुझे लगता है कि मेरे पास जो मुद्दा है वह सरणी बनाते और प्रारंभ करते समय है। आंतरिक और बाहरी सरणी की लंबाई अज्ञात है।
public IntMatrix (int[][] array)
{_matrix = new int [array.length][array.length-1].length];
for (int i = 0; i < array.length; i++) {
for(int j=0; j < array[i].length; j++)
_matrix[i][j]=array[i][j];
}
}
2 जवाब
जैसा कि मैंने एक टिप्पणी में कहा था, आपके पास सरणी की एक सरणी है:
public IntMatrix(int[][] array) {
matrix = new int[array.length][];
for (int i = 0; i < array.length; i++) {
matrix[i] = new int[array[i].length];
for(int j=0; j < array[i].length; j++) {
matrix[i][j] = array[i][j];
}
}
}
आप हमेशा myArray.length
के माध्यम से एक सरणी का आकार निर्धारित कर सकते हैं, ताकि आप प्रत्येक पंक्ति/स्तंभ के लिए आवंटित कर सकें, जैसा कि आप पुनरावृति करते हैं।
एक विचार, हालांकि। क्या केवल संदर्भ को उस सरणी में संग्रहीत करना स्वीकार्य है जिसे आपने पारित किया है? क्या यह आपकी कक्षा के बाहर बदलेगा ? यदि नहीं, तो यह एक आसान समाधान हो सकता है यदि आपको आंतरिक रूप से सरणी को फिर से बनाने की आवश्यकता नहीं है।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।