জাভাতে অ্যারেলিস্ট এবং ভেক্টরের মধ্যে পার্থক্য

লেখক: Laura McKinney
সৃষ্টির তারিখ: 1 এপ্রিল 2021
আপডেটের তারিখ: 1 মে 2024
Anonim
জাভাতে অ্যারেলিস্ট এবং ভেক্টরের মধ্যে পার্থক্য - প্রযুক্তি
জাভাতে অ্যারেলিস্ট এবং ভেক্টরের মধ্যে পার্থক্য - প্রযুক্তি

কন্টেন্ট


অ্যারেলিস্ট এবং ভেক্টর উভয়ই কালচার ফ্রেমওয়ার্ক হায়ারার্কির অধীনে ক্লাস। অ্যারেলিস্ট এবং ভেক্টর, উভয়ই অবজেক্টগুলির গতিশীল অ্যারে তৈরি করতে ব্যবহৃত হয় যেখানে প্রয়োজন অনুসারে অ্যারে আকারে বাড়তে পারে। অ্যারেলিস্ট এবং ভেক্টরকে পৃথক করার জন্য দুটি বুনিয়াদি পার্থক্য রয়েছে যে ভেক্টরটি লেগ্যাসি ক্লাসের অন্তর্ভুক্ত যা পরে সংগ্রহের ক্লাসগুলিকে সমর্থন করার জন্য পুনর্নির্মাণ করা হয়েছিল, তবে একটি অ্যারেলিস্ট একটি মান সংগ্রহের শ্রেণি। আর একটি গুরুত্বপূর্ণ পার্থক্য হ'ল অ্যারেলিস্ট অন্যদিকে সিঙ্ক্রোনাইজড নয়; ভেক্টর সিঙ্ক্রোনাইজ করা হয়।

আসুন নীচে দেখানো তুলনা চার্টের সাহায্যে কিছু অন্যান্য পার্থক্য অধ্যয়ন করি।

  1. তুলনা রেখাচিত্র
  2. সংজ্ঞা
  3. মূল পার্থক্য
  4. মিল
  5. উপসংহার

তুলনা রেখাচিত্র

তুলনা করার জন্য বেসArrayListভেক্টর
মৌলিকঅ্যারেলিস্ট ক্লাস সিঙ্ক্রোনাইজড নয়।ভেক্টর শ্রেণি সিঙ্ক্রোনাইজ করা হয়েছে।
উত্তরাধিকার শ্রেণিঅ্যারেলিস্ট একটি স্ট্যান্ডার্ড কালেকশন ক্লাস।ভেক্টর একটি উত্তরাধিকার শ্রেণি, সংগ্রহ শ্রেণিকে সমর্থন করার জন্য পুনরায় ইঞ্জিনিয়ার।
শ্রেণির ঘোষণা rationক্লাস অ্যারেলিস্টক্লাস ভেক্টর
পদ্ধতিতে পুনরায় বরাদ্দকরণেরনির্দিষ্ট না করা থাকলে একটি অ্যারেলিস্ট তার আকারের অর্ধেক দ্বারা বাড়ানো হয়।নির্দিষ্ট না করা অবস্থায়, কোনও ভেক্টর তার আকার দ্বিগুণ করতে বাড়ানো হয়।
কর্মক্ষমতাঅ্যারেলিস্ট যেহেতু অবিচ্ছিন্ন, তাই এটি ভেক্টরের চেয়ে দ্রুত পরিচালনা করে।যেমন ভেক্টর সিঙ্ক্রোনাইজ করা হয়েছে, এটি অ্যারেলিস্টের চেয়ে ধীর গতিতে কাজ করে।
শুমার / ইটারেটরঅ্যারেলিস্ট অ্যারেলিস্টে সঞ্চিত বস্তুগুলি অতিক্রম করতে আইট্রেটার ইন্টারফেস ব্যবহার করে।ভেক্টর ভেক্টরগুলিতে সঞ্চিত বস্তুগুলি অতিক্রম করতে গণনার পাশাপাশি আইট্রেটার ইন্টারফেস ব্যবহার করে।


অ্যারেলিস্ট সংজ্ঞা

অ্যারেলিস্ট স্ট্যান্ডার্ড সংগ্রহ ক্লাসগুলির তালিকার অন্তর্গত। শ্রেণীর অ্যারেলিস্টটি এর মধ্যে সংজ্ঞায়িত করা হয় java.util প্যাকেজ, এটি প্রসারিত AbstractList বর্গ যা একটি মান সংগ্রহের ক্লাস এবং এটি প্রয়োগ করে তালিকা, সংগ্রহ ইন্টারফেসে সংজ্ঞায়িত একটি ইন্টারফেস। জাভাতে, একটি স্ট্যান্ডার্ড অ্যারে সর্বদা নির্ধারিত দৈর্ঘ্যের থাকে। এর অর্থ একবার তৈরি; এটি গতিশীলভাবে আকারে সঙ্কুচিত বা সঙ্কুচিত হয় না। সুতরাং, আপনি যে অ্যারে ব্যবহার করছেন তার দৈর্ঘ্য সম্পর্কে আপনার পূর্বের জ্ঞান থাকা উচিত। তবে, কখনও কখনও এটি ঘটতে পারে যে প্রয়োজনীয় দৈর্ঘ্যটি রানটাইম হিসাবে প্রকাশিত হয় তাই, জাভা এই ধরণের পরিস্থিতি পরিচালনা করতে অ্যারেলিস্ট চালু করে।

অ্যারেলিস্ট হ'ল একটি অ্যারের গতিশীল গঠনের জন্য ক্লাস ব্যবহৃত হয় যা অবজেক্টের রেফারেন্স ধারণ করে। যখন প্রয়োজন হয় তখন এই অ্যারেটি আকারে বাড়তে পারে। শ্রেণির ঘোষণাটি নিম্নরূপ:

ক্লাস অ্যারেলিস্ট

এখানে, E একটি অ্যারে ধরে রাখবে এমন ধরণের অবজেক্টের ধরণ নির্দিষ্ট করে। তৈরি অ্যারেটি পরিবর্তনশীল দৈর্ঘ্যের এবং এটি বস্তু তালিকা থেকে বাদ দেওয়া বা অপসারণ করা হলে আকারে হ্রাস বা হ্রাস পায়।


অ্যারেলিস্টটি সিঙ্ক্রোনাইজ করা হয়নি যার অর্থ, একই সময়ে একাধিক থ্রেড অ্যারেটিতে কাজ করতে পারে। উদাহরণস্বরূপ, যদি একটি থ্রেড অ্যারেতে একটি অবজেক্ট রেফারেন্স যুক্ত করে থাকে এবং অন্য থ্রেড একই সময়ে একই অ্যারে থেকে কোনও অবজেক্ট রেফারেন্স সরিয়ে ফেলছে। অ্যারেলিস্ট শ্রেণি ব্যবহার করে একটি গতিশীল অ্যারে তৈরি করা:

ArrayList এস 1 = নতুন অ্যারেলিস্ট(); System.out.ln ("এস 1 এর প্রাথমিক আকার:" + এস 1. সাইজ ()); S1.add ( "টি"); S1.add ( "সি"); S1.add ( "এইচ"); S1.add (1, "ই"); System.out.ln ("অতিরিক্ত এস 1 এর পরে রয়েছে:" + এস 1); System.out.ln ("যোগ করার পরে এস 1 এর আকার:" + এস 1. সাইজ ()); এস 1.রেমভ ("টি"); এস 1.রেমোভ (2); System.out.ln ("মুছে ফেলার পরে এস 1 এর মধ্যে রয়েছে:" + এস 1); System.out.ln ("মোছার পরে এস 1 এর আকার:" + এস 1. সাইজ ()); // এস 1 এর আউটপুটInitial আকার: 0 যোগ করার পরে এস 1 এর মধ্যে রয়েছে:; যোগ করার পরে এস 1 এর আকার: 4 মোছার পরে এস 1 রয়েছে: মোছার পরে এস 1 এর আকার: 2

উপরের কোডে, আপনি এটি দেখতে পারেন; আমি স্ট্রিং ধরণের বস্তুর একটি অ্যারে তৈরি করেছি। আমি অ্যারে এস 1 এ অ্যাড () পদ্ধতিটি ব্যবহার করে কিছু বস্তু যুক্ত করেছি এবং পরে অপসারণ () পদ্ধতিটি ব্যবহার করে কিছু বস্তু মুছলাম। আপনি পর্যবেক্ষণ করতে পারবেন যদি আপনি অ্যারের প্রাথমিক আকারটি নির্দিষ্ট না করেন তবে এটি ‘0’ দৈর্ঘ্যের হবে। আপনি দেখতে পাচ্ছেন অ্যারের আকার বৃদ্ধি এবং সংকোচনের সাথে আপনি উপাদানগুলি যুক্ত করে মুছুন।

ভেক্টর সংজ্ঞা

ভেক্টর একটি উত্তরাধিকার শ্রেণি যা কালেকশন ফ্রেমওয়ার্ক শ্রেণিবদ্ধের সংগ্রহ শ্রেণিকে সমর্থন করার জন্য পুনর্নির্মাণ করা হয়। ভেক্টর শ্রেণিটিও সংজ্ঞায়িত করা হয়েছে java.util প্যাকেজ, দ্বারা প্রসারিত AbstractList বর্গ এবং দ্বারা বাস্তবায়িত তালিকা ইন্টারফেস. ভেক্টর শ্রেণি নিম্নলিখিত হিসাবে ঘোষণা করা হয়েছে:

ক্লাস ভেক্টর

এখানে, E বস্তুর প্রকারের সংজ্ঞা দেয় যা কোনও অ্যারেতে সংরক্ষণ করা হবে। ভেক্টর শ্রেণি ব্যবহার করে তৈরি করা একটি অ্যারে পরিবর্তনশীল দৈর্ঘ্যের। যদি বৃদ্ধি নির্দিষ্ট না করা হয় তবে এটি তার আকার দ্বিগুণ করে। আসুন ভেক্টর ব্যবহার করে অ্যারে তৈরি বুঝতে পারি।

ভেক্টর ভি = নতুন ভেক্টর(1,1); V.addElement ( "টেক"); V.addElement ( "পার্থক্য"); System.out.ln ("2 সংযোজনের পরে সক্ষমতা:" + ভি.সি.প্যাপিসিটি ()); V.addElement ( "মধ্যে"); V.addElement ( "ভেক্টর"); System.out.ln ("বর্তমান ক্ষমতা:" + ভি.কা.প্যাটিসিটি ()); // আউটপুট ক্ষমতা 2 যোগ করার পরে: 2 বর্তমান ক্ষমতা: 4

উপরের কোডে আপনি দেখতে পাচ্ছেন যে আমি স্ট্রিং অবজেক্টের অ্যারে ঘোষণা করার সময় যথাক্রমে ভেক্টরের কনস্ট্রাক্টরে আকার এবং ইনক্রিমেন্ট মান উল্লেখ করেছি। সুতরাং, আপনি পর্যবেক্ষণ করতে পারেন যে অ্যারের সীমা শেষ হওয়ার সাথে সাথে এটি ঘোষণাকালীন কনস্ট্রাক্টরের সরবরাহকৃত মান দ্বারা বৃদ্ধি পায়।

  1. একাধিক থ্রেড একই সাথে অ্যারেলিস্টে পরিচালনা করতে পারে তাই এটি বিবেচনা করা হয় unsynchronized। অ্যারেলিস্টের বিপরীতে, একবারে কেবলমাত্র একক থ্রেড ভেক্টরটিতে কাজ করতে পারে; সুতরাং এটি বলা হয় সুসংগত.
  2. জাভার প্রাথমিক সংস্করণে, কিছু শ্রেণি এবং ইন্টারফেসগুলি অবজেক্টগুলি সংরক্ষণের জন্য পদ্ধতি সরবরাহ করবে যা তাদের বলা হত লেগ্যাসি ক্লাস ভেক্টর জাভার উত্তরাধিকার শ্রেণীর মধ্যে অন্যতম। পরে, এই উত্তরাধিকার শ্রেণিগুলি সংগ্রহের ক্লাসকে সমর্থন করার জন্য পুনরায় পুনর্নির্মাণ করা হয়েছিল, আরেলিস্ট ক্লাসটি একটি মান সংগ্রহের শ্রেণি।
  3. যখন অ্যারের সীমাটি সম্পূর্ণরূপে ব্যবহার করা হয় এবং ক্লান্ত অ্যারের পাশেই একটি নতুন অবজেক্ট যুক্ত হয়, তখন এর আকার উভয় ক্ষেত্রেই বৃদ্ধি পায় অর্থাৎ অ্যারেলিস্টে পাশাপাশি ভেক্টরেও, পার্থক্যটি হ'ল অ্যারেলিস্টে, যদি আকারটি নির্দিষ্ট না করা হয় বর্তমান অ্যারের 50% দ্বারা বর্ধিত হয় যখন, ভেক্টর অ্যারে আকারে দ্বিগুণ হয় যদি বর্ধিত মান নির্দিষ্ট না করা হয়।
  4. ভেক্টর একটি অ্যারে ট্র্যাভার্স করার জন্য গণনার পাশাপাশি আইট্রেটার ব্যবহার করে তবে, একটি অ্যারেলিস্ট কেবল অ্যারে অনুসরণ করার জন্য পুনরুক্তি ব্যবহার করে।
  5. যেহেতু অ্যারেলিস্ট আনসিনক্রোনাইজড এবং অনেক থ্রেড একই সাথে এটি পরিচালনা করতে পারে তার পারফরম্যান্স ভেক্টরের চেয়ে ভাল, যার উপরে একবারে কেবল একটি থ্রেড কাজ করতে পারে।

মিল:

  1. অ্যারেলিস্ট এবং ভেক্টর উভয়ই java.util প্যাকেজে সংজ্ঞায়িত হয়েছে।
  2. অ্যারেলিস্ট এবং ভেক্টর উভয়ই অ্যাবস্ট্রাকলিস্ট শ্রেণি প্রসারিত করে।
  3. অ্যারেলিস্ট এবং ভেক্টর উভয়ই তালিকা ইন্টারফেস প্রয়োগ করে।
  4. অ্যারেলিস্ট এবং ভেক্টর উভয়ই ডায়নামিক অ্যারে তৈরি করতে ব্যবহৃত হয় যা প্রয়োজনীয় হিসাবে বৃদ্ধি পায়।
  5. অ্যারেলিস্ট এবং ভেক্টর উভয়ই বস্তুর রেফারেন্স রাখে।

উপসংহার:

আমি এই বলে শেষ করেছিলাম যে অ্যারেলিস্টের ব্যবহার ভেক্টর ব্যবহারের চেয়ে আরও ভাল কারণ এটি দ্রুত এবং আরও ভাল পারফর্ম করে।