जावा स्प्रेडशीट डेटा संरचना कैसे बनाएं

सरलतम स्तर पर, आप एक साधारण 2D सरणी का उपयोग करके जावा में स्प्रेडशीट के लिए डेटा संरचना बना सकते हैं। हालांकि, यह दृष्टिकोण वांछित होने के लिए बहुत कुछ छोड़ देता है। आदर्श रूप से, एक स्प्रैडशीट डेटा संरचना को संपूर्ण पंक्तियों और स्तंभों को कुशलतापूर्वक आकार देने, सम्मिलित करने और हटाने में सक्षम होना चाहिए, और ये संचालन जावा सरणी में कम्प्यूटेशनल रूप से महंगे हैं, जावा को हर बार दृश्यों के पीछे खरोंच से संपूर्ण डेटा संरचना का पुनर्निर्माण करने की आवश्यकता होती है। ऑपरेशन किया जाता है।

इसके बजाय, आपको कुछ अधिक परिष्कृत का उपयोग करना चाहिए: लिंक्ड सूचियों की एक लिंक्ड सूची। यह पंक्तियों और स्तंभों को सम्मिलित करने और हटाने के साथ-साथ तालिका के आकार को और अधिक तेज़ी से करने की अनुमति देगा। हालाँकि, यह एक छोटी प्रदर्शन लागत के साथ आएगा जब स्प्रैडशीट के विशिष्ट कक्षों को बारी-बारी से एक्सेस करने का समय आएगा।

चरण 1

एक नई जावा फ़ाइल बनाएँ और इसे "स्प्रेडशीटस्ट्रक्चर.जावा" नाम दें। यदि आपके पास पसंदीदा एकीकृत विकास पर्यावरण (आईडीई) है, तो आप "फ़ाइल," "नई कक्षा" पर क्लिक करके ऐसा कर सकते हैं। वैकल्पिक रूप से, आप "प्रारंभ," "सभी कार्यक्रम," "सहायक उपकरण," "नोटपैड" पर क्लिक करके और उस फ़ाइल नाम के साथ फ़ाइल को सहेजकर विंडोज नोटपैड खोल सकते हैं।

चरण दो

चरण 1 में आपके द्वारा बनाई गई फ़ाइल में निम्नलिखित को चिपकाकर अपना वर्ग इंटरफ़ेस बनाएं। शेष चरण इस चरण में परिभाषित प्रत्येक विधि के लिए कोड भरने के लिए समर्पित होंगे:

पब्लिक क्लास स्प्रेडशीट {

लिंक्ड सूची डेटा = नई लिंक्डलिस्ट(); सार्वजनिक स्प्रैडशीट () { } सार्वजनिक शून्य addRow () { } सार्वजनिक शून्य addRow (int अनुक्रमणिका) { } सार्वजनिक शून्य निकालें पंक्ति (int अनुक्रमणिका) { } सार्वजनिक शून्य निकालें कॉलम (int अनुक्रमणिका) { } सार्वजनिक शून्य addColumn () { } सार्वजनिक शून्य addColumn (इंट इंडेक्स) {} पब्लिक शून्य सेटसेल (इंट एक्स, इंट वाई, स्ट्रिंग न्यूडाटा) {} पब्लिक इंट गेटविड्थ () {} पब्लिक इंट गेटहाइट () {} पब्लिक स्ट्रिंग टूस्ट्रिंग () {} /** * क्लास टेस्ट करें, */  सार्वजनिक स्थैतिक शून्य main (String [] args) {    } 

}

मूल डेटा संरचना स्तंभों की एक लिंक्डलिस्ट वाली पंक्तियों की एक लिंक्डलिस्ट होगी। हालांकि एक साधारण 2D सरणी को लागू करना आसान होगा, यह कई सामान्य स्प्रेडशीट संचालनों के लिए भी बहुत धीमा होगा, विशेष रूप से पंक्तियों को सम्मिलित करना और हटाना।

चरण 3

निम्नलिखित कोड को कंस्ट्रक्टर विधि, "स्प्रेडशीट" के कोष्ठकों के बीच चिपकाएँ:

सार्वजनिक स्प्रेडशीट () {addRow (); एडकॉलम (); } 

यह केवल यह सुनिश्चित करता है कि हम कम से कम एक पंक्ति और कॉलम से शुरू करें।

चरण 4

दो AddRow विधियों को भरने के लिए निम्नलिखित पेस्ट करें। एक कोई तर्क नहीं लेता है और स्वचालित रूप से स्प्रैडशीट के अंत में पंक्ति जोड़ता है, जबकि दूसरा उपयोगकर्ता को यह निर्दिष्ट करने की अनुमति देता है कि पंक्ति कहां जोड़नी है:

सार्वजनिक शून्य addRow () { data.addLast (नई LinkedList()); के लिए (int x = 0; x < getHeight (); x++) {data.getLast ()। जोड़ें (नया स्ट्रिंग ()); } } public void addRow(int index) { data.add(index, new LinkedList()); के लिए (int x = 0; x < getHeight (); x++) {data.get(index).add(new String()); } } 

चरण 5

अपनी स्रोत फ़ाइल में एक पंक्ति निकालने के लिए कोड पेस्ट करें:

सार्वजनिक शून्य निकालेंरो (इंट इंडेक्स) {डेटा। हटाएं (इंडेक्स); } 

चरण 6

दो ऐडकॉलम विधियों के लिए कोड पेस्ट करें। ये ऐडरो विधियों के समान कार्य करते हैं - दो हैं, एक शीट के अंत में एक कॉलम जोड़ने के लिए और एक बीच में एक कॉलम डालने के लिए:

सार्वजनिक शून्य ऐडकॉलम () {के लिए (लिंक्डलिस्ट एल: डेटा) {l.addLast (नया स्ट्रिंग ()); } } सार्वजनिक शून्य एडकॉलम (इंट इंडेक्स) { के लिए (लिंक्डलिस्ट एल: डेटा) {एल.एड (इंडेक्स, न्यू स्ट्रिंग ()); } } 

चरण 7

कॉलम हटाने के लिए कोड पेस्ट करें:

सार्वजनिक शून्य निकालें कॉलम (इंट इंडेक्स) {के लिए (लिंक्डलिस्ट एल: डेटा) { एल। हटाएं (इंडेक्स); } } 

चरण 8

वह कोड पेस्ट करें जो किसी दिए गए सेल की सामग्री को डेटा की एक स्ट्रिंग पर सेट करता है:

सार्वजनिक शून्य सेटसेल (int x, int y, स्ट्रिंग newData) {data.get(x).set(y, newData); } 

चरण 9

स्प्रैडशीट की चौड़ाई और ऊंचाई प्राप्त करने के तरीके भरें:

पब्लिक इंट गेटविड्थ () {रिटर्न डेटा। गेटफर्स्ट ()। आकार (); } सार्वजनिक int getHeight () { वापसी data.size (); } 

चरण 10

टूस्ट्रिंग विधि को लागू करें। यह एक स्वरूपित स्ट्रिंग लौटाएगा, जो पंक्तियों और स्तंभों की तालिका में, स्प्रेडशीट में डेटा प्रदर्शित करेगा:

सार्वजनिक स्ट्रिंग टूस्ट्रिंग () {स्ट्रिंग अस्थायी = ""; के लिए (लिंक्डलिस्ट एल: डेटा) {के लिए (ऑब्जेक्ट ओ: एल) {स्ट्रिंग एस = (स्ट्रिंग) ओ; अगर (s.equals("")) s = "-खाली-"; अस्थायी + = एस + ""; } अस्थायी + = "\ n"; } वापसी अस्थायी; } 

निम्नलिखित मुख्य विधि पेस्ट करें जो स्प्रैडशीट डेटा संरचना को अपनी गति के माध्यम से रखती है और यह सुनिश्चित करती है कि सब कुछ अपेक्षित रूप से काम करता है:

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) {स्प्रेडशीट शीट = नई स्प्रेडशीट (); System.out.println(sheet.toString ()); System.out.print(sheet.getWidth()); सिस्टम.आउट.प्रिंट ("एक्स"); System.out.println (पत्रक.getHeight ()); शीट.एडरो (); System.out.print(sheet.getWidth()); सिस्टम.आउट.प्रिंट ("एक्स"); System.out.println (पत्रक.getHeight ()); शीट.सेटसेल (0,0, "1"); शीट.सेटसेल (0,1, "2"); शीट.सेटसेल (1,0, "3"); शीट.सेटसेल(1,1,,"4"); System.out.println(sheet.toString ()); शीट.एडकॉलम(1); शीट.सेटसेल (1,0, "टीईएमपी"); शीट.सेटसेल (1,1, "टीईएमपी"); System.out.println(sheet.toString ()); शीट.रिमूवरो (1); System.out.println(sheet.toString ()); शीट निकालें कॉलम (1); System.out.println(sheet.toString ()); }