2012-04-08 15 views
12

मैं एक द्वि-आयामी सरणी बनाना चाहता हूं जिसमें मैं डेटाबेस से रिकॉर्ड स्टोर करना चाहता हूं। तो मान लें कि पहला प्रकार int है और दूसरा प्रकार String है (यहां मैं सिर्फ एक रिकॉर्ड का वर्णन कर रहा हूं इसलिए मूल रूप से डीबी कॉलम के प्रकार)। मैं यह कैसे कर सकता हूं? क्या सरणी उस के लिए सही डेटा संरचना है?विभिन्न प्रकारों की द्वि-आयामी सरणी

उत्तर

5

Arrays में केवल एक प्रकार हो सकता है। यदि वह प्रकार Object होता है तो यह Object और उसके उप-प्रकारों में से किसी एक को स्टोर कर सकता है, लेकिन यह वास्तव में ऐसा नहीं लगता है कि आप यहां क्या करने की कोशिश कर रहे हैं।

ऐसा लगता है कि आप जो वर्णन कर रहे हैं वह डेटाबेस जानकारी संग्रहीत करने के लिए 2 डी सरणी है, जिसमें सरणी में प्रत्येक तत्व पंक्तियों में से एक स्तंभ है। यह रिकॉर्ड की एक सरणी नहीं है, यह कॉलम डेटा की एक सरणी है।

इसके बजाय, केवल रिकॉर्ड्स की एक-आयामी सरणी संग्रहित करें, जहां सरणी का प्रत्येक तत्व संपूर्ण डीबी पंक्ति का संदर्भ है।

+0

मुझे खेद है, लेकिन मुझे यकीन नहीं है कि आपका क्या मतलब है: "सरणी का प्रत्येक तत्व संपूर्ण डीबी पंक्ति का संदर्भ है"। संपूर्ण डीबी पंक्ति विभिन्न प्रकार, स्ट्रिंग और int के दो स्तंभों से बना है। मैं इसे एक सरणी में कैसे स्टोर कर सकता हूं? – lunar

+1

डेटाबेस का उपयोग करने के लिए आप क्या उपयोग कर रहे हैं? एक वस्तु होनी चाहिए जो एक तालिका में एक पंक्ति का प्रतिनिधित्व करे। फिर उस पंक्ति में विधियां होनी चाहिए जिन्हें आप उस पंक्ति में कॉलम डेटा तक पहुंचने के लिए कॉल कर सकते हैं। जो भी ऑब्जेक्ट डेटाबेस पंक्ति को लपेटता है वह है जिसे आपको अपनी सरणी में स्टोर करने की आवश्यकता होती है। मेरा मतलब है, यह अनिवार्य रूप से डेटाबेस तालिका क्या है - पंक्तियों की एक सरणी। – jefflunt

11

मुझे यकीन नहीं है कि मैं निम्नलिखित हूं, लेकिन आप Map<Integer,String> खोज रहे हैं। या Map<Integer,List<String>>। [List पर एक नजर है, और HashMap]

Map कुंजी [Integer] मूल्य [String या List] के सहयोग से अनुमति देता है।

Map कुंजी की तेज़ लुकअप और इसके संलग्न मूल्य की भी अनुमति देता है।

(*) आप Map<Integer,List<String>> का उपयोग करना चाहिए अगर आप एक से अधिक StringInteger प्रति संलग्न करने के लिए चाहते हैं, या वैकल्पिक रूप से आप Apache Commons MultiMap

+1

मानचित्र <इंटीजर, स्ट्रिंग> यदि आप जावा से यह डुप्लिकेट इंटीजर के लिए रिकॉर्ड की अनुमति नहीं देते हैं। –

+0

@ योगेशप्रजापता आप इसे अनुमति देने के लिए गुवा या अपाचे के 'मल्टीमैप' में से एक का उपयोग कर सकते हैं। – Jeffrey

+0

@ जेफरी लेकिन आपने यहां उल्लेख नहीं किया है कि आप गौवास के मानचित्र के बारे में बात कर रहे हैं। –

1

उपयोग कर सकते हैं आप उपयोग कर सकते हैं

HashMap<Integer, ArrayList<String>> 
6

आप भी ऐसा कर सकते इस

Object[][] o = new Object[10][10]; 

o[0][0] = 1; 
o[0][1] ="hello"; 

System.out.println(o[0][0]); 
System.out.println(o[0][1]); 
+0

हे योगेश, मैं ओ [0] [0] = स्ट्रिंग्स की एक सरणी और ओ [0] [1] = एक स्ट्रिंग के साथ ऐसा करने की कोशिश कर रहा हूं। यह मेरे लिए काम नहीं करता है, क्या यह मेरे लिए काम करना चाहिए? – Tomer

+0

कृपया अपना कोड पोस्ट करें। –

0

की सहायता से चीज यदि आप बस स्ट्रिंग डेटा का एक कॉलम रखना चाहते हैं

एक 2 आयामी स्ट्रिंग सरणी

String[][] words = new String[][]; 

आपका पहला स्तंभ सभी स्ट्रिंग डेटा शामिल कर सकते हैं घोषित: एक और पूर्णांक डेटा का एक और स्तंभ, इस तुम क्या कर पर विचार कर सकते हैं। दूसरे कॉलम में संख्यात्मक डेटा हो सकता है लेकिन स्ट्रिंग के रूप में। आप Integer.toString() और Integer.parseInt() तरीकों का उपयोग करने के लिए इस

words[index][index] = Integer.toString(Integer.parseInt(args)); 

मुझे यकीन है कि वास्तव में क्या आप प्राप्त करने की आशा नहीं कर रहा हूँ करने के लिए चाहते हो सकता है, लेकिन आप अपनी आवश्यकताओं के अनुसार इस स्निपेट को संशोधित करने पर विचार कर सकते

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