কম্পিউটার টিউটোরিয়াল

জাভাতে ArrayList এবং Vector-এর পার্থক্য

এই পোস্টে আমরা জাভাতে ArrayList এবং Vector-এর পার্থক্য বুঝব।

ArrayList

  • এটি সিঙ্ক্রোনাইজড (synchronized) নয়।
  • যদি এলিমেন্টের সংখ্যা ArrayList-এর ক্যাপাসিটি অতিক্রম করে, তবে বর্তমান অ্যারে সাইজ ৫০% বাড়ায়।
  • এটি থ্রেড-সেফ (thread-safe) নয়।
  • JDK 1.2-এ চালু করা হয়েছিল।
  • এটি শুধু ইটারেটর (iterator) ব্যবহার করে ট্রাভার্স করতে পারে।
  • নন-সিঙ্ক্রোনাইজড হওয়ায় এটি দ্রুত।
  • এলিমেন্টগুলো ট্রাভার্স করার জন্য Iterator ইন্টারফেস ব্যবহার করে।

উদাহরণ

ArrayList al = new ArrayList();

Vector

  • এটি সিঙ্ক্রোনাইজড (synchronized)।
  • এটি থ্রেড সেফ (thread safe)।
  • এটি একটি লিগ্যাসি (legacy) ক্লাস।
  • সিঙ্ক্রোনাইজড হওয়ায় এটি ধীর (slow)।
  • যদি এলিমেন্টের সংখ্যা Vector-এর ক্যাপাসিটি অতিক্রম করে, তবে বর্তমান অ্যারে সাইজ ১০০% বাড়ায়।
  • এটি enumarator এবং iterator দুটোই ব্যবহার করে ট্রাভার্স করতে পারে।
  • ArrayList-এর চেয়ে এটি পছন্দ করা হয়।
  • এটি মাল্টি-থ্রেডিং এনভায়রনমেন্ট প্রদান করে।
  • কারেন্ট থ্রেড নির্দিষ্ট অবজেক্টে লক রিলিজ না করার পর্যন্ত অন্য থ্রেডগুলো রানেবল বা নন-রানেবল স্টেটে ধরে রাখে।
  • এলিমেন্টগুলো ট্রাভার্স করার জন্য 'Iterator' ইন্টারফেস বা Enumeration ইন্টারফেস ব্যবহার করতে পারে।

উদাহরণ

Vector v = new Vector();
  1. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  2. জাভাতে ArrayList.clear() এবং ArrayList.removeAll()-এর পার্থক্য কী?

  3. জাভাতে ArrayList এবং HashSet-এর পার্থক্য

  4. জাভাতে ArrayList এবং CopyOnWriteArrayList-এর পার্থক্য