जावा मधील अ‍ॅरेलिस्ट आणि वेक्टर दरम्यान फरक

लेखक: Laura McKinney
निर्मितीची तारीख: 1 एप्रिल 2021
अद्यतन तारीख: 1 मे 2024
Anonim
अपरिवर्तनीय संग्रहांची आश्चर्यकारक कामगिरी: क्लोजरचे पर्सिस्टंटवेक्टर वि. जावाची अॅरेलिस्ट
व्हिडिओ: अपरिवर्तनीय संग्रहांची आश्चर्यकारक कामगिरी: क्लोजरचे पर्सिस्टंटवेक्टर वि. जावाची अॅरेलिस्ट

सामग्री


अ‍ॅरेलिस्ट आणि वेक्टर हे दोन्ही संकलन फ्रेमवर्क वर्गीकरण अंतर्गत वर्ग आहेत. अ‍ॅरेलिस्ट आणि वेक्टर हे दोन्ही ऑब्जेक्ट्स चे डायनॅमिक अ‍ॅरे तयार करण्यासाठी वापरले जातात जेथे आवश्यकतेनुसार अ‍ॅरे आकारात वाढू शकते. अ‍ॅरेलिस्ट आणि वेक्टरला वेगळे करणारे दोन मूलभूत फरक आहेत ते म्हणजे वेक्टर लेगसी क्लासेसचे आहेत जे नंतर संग्रह वर्गांचे समर्थन करण्यासाठी पुन्हा तयार केले गेले, तर अ‍ॅरेलिस्ट एक मानक संग्रह वर्ग आहे. दुसरा महत्त्वाचा फरक म्हणजे अ‍ॅरेलिस्ट दुसरीकडे संकालित न केलेली आहे; वेक्टर समक्रमित आहे.

खाली दर्शविलेले तुलना चार्टच्या मदतीने आम्ही काही इतर मतभेदांचा अभ्यास करूया.

  1. तुलना चार्ट
  2. व्याख्या
  3. मुख्य फरक
  4. समानता
  5. निष्कर्ष

तुलना चार्ट

तुलनासाठी आधारअ‍ॅरेलिस्टवेक्टर
मूलभूतअ‍ॅरेलिस्ट वर्ग संकालित केलेला नाही.वेक्टर वर्ग समक्रमित केला आहे.
लेगसी वर्गअ‍ॅरेलिस्ट हा एक मानक संग्रह वर्ग आहे.वेक्टर हा लेगसी वर्ग आहे, जो संग्रह वर्गास समर्थन देण्यासाठी पुन्हा अभियंता आहे.
वर्ग घोषणावर्ग अ‍ॅरेलिस्टवर्ग वेक्टर
रीलोकेशननिर्दिष्ट नसताना अ‍ॅरेलिस्टच्या अर्ध्या आकाराने वाढ केली जाते.निर्दिष्ट नसल्यास, वेक्टरच्या आकारात दुप्पट वाढ केली जाते.
कामगिरीअ‍ॅरेलिस्ट अनइन्क्रॉन्झाइड असल्याने, वेक्टरपेक्षा वेगवान ऑपरेट करते.वेक्टर समक्रमित झाल्यामुळे ते अ‍ॅरेलिस्टपेक्षा हळू चालविते.
गणना / Iteratorअ‍ॅरेलिस्टमध्ये अ‍ॅरेलिस्टमध्ये संग्रहित वस्तू ओलांडण्यासाठी आयटरटर इंटरफेसचा वापर केला जातो.वेक्टर मध्ये संग्रहित वस्तू ओलांडण्यासाठी वेक्टर एन्यूमेरेशन तसेच आयटरटर इंटरफेसचा वापर करते.


अ‍ॅरेलिस्टची व्याख्या

अ‍ॅरेलिस्ट मानक संग्रह वर्गाच्या यादीशी संबंधित आहे. एरेलिस्ट हा वर्ग आत परिभाषित केला आहे java.util पॅकेज, ते विस्तारित करते अ‍ॅबस्ट्रॅक्टलिस्ट वर्ग जो एक मानक संग्रह वर्ग देखील आहे आणि तो अंमलात आणतो यादी, संग्रह इंटरफेसमध्ये परिभाषित इंटरफेस. जावामध्ये, मानक अ‍ॅरे नेहमी निश्चित लांबीचा असतो. याचा अर्थ एकदा तयार; ते गतीशीलपणे आकारात वाढत किंवा संकुचित होत नाही. तर, आपण वापरत असलेल्या अ‍ॅरेच्या लांबीबद्दल आपल्याला पूर्वीचे ज्ञान असले पाहिजे. परंतु, कधीकधी असे होऊ शकते की रनटाइमवर आवश्यक लांबी प्रकट झाली असेल तर अशा प्रकारच्या जावा हाताळण्यासाठी जावाने अ‍ॅरेलिस्टची ओळख केली.

अ‍ॅरेलिस्ट हा अ‍ॅरेच्या गतिशील निर्मितीसाठी वापरलेला वर्ग आहे ज्यामध्ये ऑब्जेक्ट्सचे संदर्भ असतात. आवश्यकतेनुसार हा अ‍ॅरे आकारात वाढू शकतो. वर्ग घोषणा खालीलप्रमाणे आहेः

वर्ग अ‍ॅरेलिस्ट

येथे, अ‍ॅरे असलेल्या वस्तूंचा प्रकार निर्दिष्ट करते. तयार केलेला अ‍ॅरे बदलत्या लांबीचा असतो आणि ऑब्जेक्ट्सला यादीमधून जोडले किंवा काढले जाते तेव्हा ते आकारात वाढते आणि कमी होते.


अ‍ॅरेलिस्ट समक्रमित केलेली नाही म्हणजे एकाच वेळी एकापेक्षा जास्त थ्रेड अ‍ॅरेवर कार्य करू शकतात. उदाहरणार्थ, जर एक धागा अ‍ॅरेमध्ये ऑब्जेक्ट संदर्भ जोडत असेल तर आणि दुसरा धागा त्याच अ‍ॅरेमधून ऑब्जेक्ट संदर्भ त्याच वेळी काढत असेल. अ‍ॅरेलिस्ट क्लासचा वापर करून डायनॅमिक अ‍ॅरेची निर्मितीः

अ‍ॅरेलिस्ट एस 1 = नवीन अ‍ॅरेलिस्ट(); सिस्टम.आउट.एलएन ("एस 1 चा प्रारंभिक आकार:" + एस 1. आकार ()); एस 1.एडीडी ("टी"); एस 1.एडीडी ("सी"); एस 1.एडीडी ("एच"); एस 1.एडीडी (1, "ई"); सिस्टम.आउट.लएन ("या नंतर एस 1 मध्ये समाविष्ट आहे:" + एस 1); सिस्टम.आउट.लएन ("जोडल्यानंतर एस 1 चा आकार:" + एस 1. आकार ()); एस 1.रेमोव्ह ("टी"); एस 1.रेमोव्ह (2); System.out.ln ("हटविल्यानंतर एस 1 मध्ये हे समाविष्ट आहे:" + एस 1); System.out.ln ("हटविल्यानंतर एस 1 चा आकार:" + एस 1. आकार ()); // एस 1 चा आउटपुटइनिटियल आकार: 0 या नंतर एस 1 मध्ये हे समाविष्ट आहे:; याव्यतिरिक्त एस 1 चा आकारः 4 हटवल्यानंतर एस 1 मध्ये: हटविल्यानंतर एस 1 चा आकार: 2

वरील कोडमध्ये आपण हे पाहू शकता; मी स्ट्रिंग टाईपच्या ऑब्जेक्ट्सची अ‍ॅरे तयार केली. मी अ‍ॅरे () पद्धत वापरुन अ‍ॅरे एस 1 मध्ये काही ऑब्जेक्ट्स जोडली आणि नंतर रिमूव्ह () मेथड वापरून काही ऑब्जेक्ट्स डिलीट केल्या. आपण अ‍ॅरेचा प्रारंभिक आकार निर्दिष्ट न केल्यास आपण ते पाहू शकता की ते 0 0 लांबीचे असेल. जसे आपण घटक जोडता आणि हटवता तसे अ‍ॅरे वाढत असताना आणि आकाराने संकुचित झाल्याचे आपण पाहू शकता.

वेक्टर व्याख्या

वेक्टर हा एक लेगसी वर्ग आहे जो संग्रह फ्रेमवर्क श्रेणीरचनामधील संग्रह वर्गास समर्थन देण्यासाठी पुन्हा तयार केला जातो. मध्ये वेक्टर वर्ग देखील परिभाषित केला आहे java.util संकुल, द्वारे वाढविले अ‍ॅबस्ट्रॅक्टलिस्ट वर्ग आणि अंमलबजावणी यादी इंटरफेस. वेक्टर वर्ग खालीलप्रमाणे घोषित केला आहे:

वर्ग वेक्टर

येथे E, अ‍ॅरे मध्ये संग्रहित होणार्‍या ऑब्जेक्टचा प्रकार निश्चित करते. वेक्टर क्लास वापरुन तयार केलेला अ‍ॅरे चल लांबीचा आहे. वेतन वाढ निर्दिष्ट न केल्यास तो आकारात दुप्पट वाढतो. व्हेक्टरचा वापर करून अ‍ॅरेची निर्मिती समजून घेऊया.

वेक्टर व्ही = नवीन वेक्टर(1,1); व्हीएड्डेलमेंट ("टेक"); व्हीएडएलेमेंट ("फरक"); सिस्टम.आउट.एलएन ("2 जोडल्यानंतरची क्षमता:" + व्ही.कॅपेसिटी ()); व्हीएडएलेमेंट ("दरम्यान"); व्हीएडएलेमेंट ("वेक्टर"); सिस्टम.आउट.लएन ("वर्तमान क्षमता:" + व्ही.कॅपेसिटी ()); // 2 जोडल्यानंतर आउटपुट क्षमताः 2 वर्तमान क्षमता: 4

वरील कोडमधे तुम्ही हे पाहू शकता की स्ट्रिंग ऑब्जेक्ट्सचा अ‍ॅरे घोषित करताना मी वेक्टरच्या कन्स्ट्रक्टरमध्ये अनुक्रमे आकार आणि वाढीव मूल्यांचा उल्लेख केला आहे. म्हणूनच, तुम्ही पाहु शकता की अ‍ॅरेची मर्यादा पूर्ण झाल्यावर ती कन्स्ट्रक्शनला घोषित करताना देण्यात आलेल्या किंमतीद्वारे वाढते.

  1. एकाधिक थ्रेड एकाच वेळी अ‍ॅरेलिस्टवर कार्य करू शकतात म्हणूनच याचा विचार केला जातो असंयोजित. अ‍ॅरेलिस्टच्या विपरीत, एकाच वेळी केवळ एकच धागा वेक्टरवर कार्य करू शकतो; म्हणूनच त्याला म्हणतात समक्रमित.
  2. जावाच्या सुरुवातीच्या आवृत्तीत, काही वर्ग आणि इंटरफेस त्या वस्तू संग्रहित करण्याच्या पद्धती प्रदान करतात ज्यास त्यांना लेगेसी क्लासेस म्हटले जाते वेटर जावाच्या लेगसी क्लासपैकी एक आहे. नंतर, या लेगसी वर्गांचे संग्रहण वर्गास समर्थन देण्यासाठी पुन्हा नव्याने तयार केले गेले, तर अ‍ॅरेलिस्ट वर्ग एक मानक संग्रह वर्ग आहे.
  3. जेव्हा अ‍ॅरेची मर्यादा पूर्णपणे वापरली जाते आणि थकलेल्या अ‍ॅरेच्या पुढे नवीन ऑब्जेक्ट जोडला जातो तेव्हा त्याचा आकार दोन्ही प्रकरणांमध्ये वाढतो म्हणजे अ‍ॅरेलिस्टमध्ये तसेच वेक्टरमध्ये परंतु, फरक म्हणजे फरक निर्दिष्ट केला नसल्यास अ‍ॅरेलिस्टमध्ये सध्याच्या अ‍ॅरेच्या %०% ने वाढ केली आहे, तर व्हिक्टमेंट व्हॅल्यू निर्दिष्ट न केल्यास वेक्टर अ‍ॅरे मध्ये दुप्पट आकार वाढविला जाईल.
  4. अ‍ॅरेला जाण्यासाठी व्हेक्टर एन्यूमोरेशन तसेच आयटरचा वापर करतो, तर अ‍ॅरेलिस्ट फक्त अ‍ॅरे ट्रॅव्हर्सिंगसाठी इटरेटर वापरते.
  5. अ‍ॅरेलिस्ट अनसिंक्रनाइझ केलेली आहे आणि बर्‍याच धागे एकाच वेळी त्यावर कार्य करू शकतात कारण त्याची कामगिरी वेक्टरपेक्षा चांगली आहे ज्यावर एकाच वेळी फक्त एकच धागा कार्य करू शकतो.

समानता:

  1. अ‍ॅरेलिस्ट आणि वेक्टर दोघेही जावा.यूटिल पॅकेजमध्ये परिभाषित केले आहेत.
  2. अ‍ॅरेलिस्ट आणि वेक्टर दोघेही अ‍ॅबस्ट्रॅक्टलिस्ट वर्ग वाढवतात.
  3. अ‍ॅरेलिस्ट आणि वेक्टर दोन्ही लागू करतात यादी इंटरफेस.
  4. अ‍ॅरेलिस्ट आणि वेक्टर दोन्हींचा वापर आवश्यकतेनुसार वाढणारी डायनॅमिक अ‍ॅरे तयार करण्यासाठी केला जातो.
  5. अ‍ॅरेलिस्ट आणि वेक्टर दोघेही ऑब्जेक्ट संदर्भ ठेवतात.

निष्कर्ष:

मी असे सांगून निष्कर्ष काढतो की अ‍ॅरेलिस्टचा वापर वेक्टर वापरण्यापेक्षा अधिक चांगला आहे कारण तो वेगवान आणि चांगले करतो.