জাভাতে, নির্দিষ্ট ধরনের ডেটা স্টোর করার জন্য বিস্তৃত রেঞ্জের ক্লাস আছে। প্রতিটি ক্লাসের নিজস্ব বৈশিষ্ট্য আছে এবং ডেটার একটি টাইপ স্টোর করার জন্য ব্যবহৃত ক্লাস নির্ধারণ করে সেটি কীভাবে অ্যাক্সেস এবং ম্যানিপুলেট করা যাবে।
জাভাতে সবচেয়ে গুরুত্বপূর্ণ ক্লাসlerden একটি হলো Vector ক্লাস। Vector হলো List ইন্টারফেসের একটি ইমপ্লিমেন্টেশন এবং রিসাইজেবল অ্যারে তৈরি করতে ব্যবহৃত হয়।
এই টিউটোরিয়ালে, উদাহরণসহ জাভাতে Vector ক্লাস কীভাবে ব্যবহার করে রিসাইজেবল অ্যারে তৈরি করতে হয় সেটি আলোচনা করা হবে। 덧붙ি, এই টিউটোরিয়ালে Vector এবং ArrayList ক্লাসের তুলনা করা হবে, যা Vector-এর সাথে খুব মিলিত।
জাভা List ইন্টারফেস
List ইন্টারফেস জাভাতে অর্ডারড সেট অফ ডেটা তৈরি করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি List একটি জুতা দোকানে বিক্রি হওয়া জুতোর তালিকা বা একটি ব্যাংকে কাজ করে সমস্ত কর্মীর নামের তালিকা স্টোর করতে পারে।
যেহেতু List একটি ইন্টারফেস, আপনি List থেকে অবজেক্ট তৈরি করতে পারবেন না। তাই, আপনি যদি একটি লিস্ট তৈরি করতে চান, তবে আপনাকে List ইন্টারফেস এক্সটেন্ড করা ক্লাসগুলোর একটি ব্যবহার করতে হবে। এগুলো হলো: ArrayList, LinkedList, Vector, এবং Stack। এই টিউটোরিয়ালে ফোকাস করা হবে আপনি কীভাবে Vector ক্লাস ব্যবহার করে জাভাতে একটি List অবজেক্ট তৈরি করতে পারেন।
জাভা Vector
Vector List ইন্টারফেস ব্যবহার করে রিসাইজেবল অ্যারে তৈরি করে। জাভাতে একটি ভেক্টর তৈরি করতে, আপনি নিচের সিনট্যাক্স ব্যবহার করতে পারেন:
Vector<DataType> vector_name = new Vector<>();
এই সিনট্যাক্সটিকে এর বেসিক অংশগুলো ভাঙে দেখা যাক:
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today.
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job.
- Vector আমাদের প্রোগ্রামকে বলে যে আমরা একটি ভেক্টর ডিক্লেয়ার করতে চাই।
- DataType হলো আমাদের ভেক্টর কোন ধরনের ডেটা স্টোর করবে।
- vector_name হলো আমাদের ভেক্টরের নাম।
- new Vector<>(); একটি নতুন ভেক্টর তৈরি করে এবং এটিকে
vector_nameভেরিয়েবলে অ্যাসাইন করে।
উদাহরণস্বরূপ, মনে করুন আমরা আমাদের ডিপার্টমেন্ট স্টোরে বিক্রি হওয়া ল্যাম্পের সব রং স্টোর করার জন্য একটি ভেক্টর ডিক্লেয়ার করতে চাই। আমরা এই কোডটি ব্যবহার করে ভেক্টরটি ডিক্লেয়ার করতে পারি:
Vector<String> lamp_colors = new Vector>?();
এখন আমাদের lamp_colors নামে একটি ভেক্টর আছে যাতে আমাদের ডিপার্টমেন্ট স্টোরে বিক্রি হওয়া ল্যাম্পের সব রং স্টোর করা যাবে।
জাভা Vector মেথড
জাভা Vector ক্লাস অনেক মেথড প্রদান করে যা একটি ভেক্টরে স্টোর করা ডেটা রিট্রিভ এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। Vector ক্লাসের সবচেয়ে গুরুত্বপূর্ণ কিছু মেথড ভাঙে দেখা যাক।
ভেক্টরে আইটেম যোগ করা
ভেক্টরে আইটেম যোগ করার জন্য তিনটি মেথড ব্যবহৃত হয়। আপনি কোনটি ব্যবহার করবেন সেটি নির্ভর করে আপনি কীভাবে একটি ভেক্টরে আইটেম যোগ করতে চান।
ভেক্টরে এলিমেন্ট যোগ করা
add() মেথডটি একটি ভেক্টরে এলিমেন্ট যোগ করতে ব্যবহৃত হয়। add() মেথডের সিনট্যাক্স হলো:
add(index, elementName);
add() মেথড দুটি প্যারামিটার গ্রহণ করে:
- index হলো ইনডেক্স ভ্যালু যেখানে আপনি নির্দিষ্ট আইটেমটি ভেক্টরে যোগ করতে চান।
- elementName হলো আপনি যে আইটেমটি ভেক্টরে যোগ করতে চান।
আপনি যদি একটি ভেক্টরের শেষে একটি আইটেম যোগ করতে চান, তবে index প্যারামিটার প্রয়োজন নেই।
মনে করুন আমরা একটি ডিপার্টমেন্ট স্টোর চেইন চালাচ্ছি এবং আমাদের নতুন ফার্নিচার রেঞ্জের জন্য একটি নির্দিষ্ট ডেস্ক ল্যাম্প কোন কয়েকটি রংয়ে বিক্রি হচ্ছে সেটির তালিকা তৈরি করছি। ম্যানুফ্যাকচারার আমাকে জানিয়েছে যে নারঙ্গি এবং নীল রঙের ল্যাম্প পরবর্তী অর্ডারের সাথে আসবে, তাই আমরা আমাদের রং তালিকায় নারঙ্গি এবং নীল যোগ করতে চাই।
আমরা এটি এই কোড দিয়ে করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Orange"); lamp_colors.add("Blue"); System.out.println("Vector: " + lamp_colors); } }
আমাদের কোড রিটার্ন করে:
Vector: [Orange, Blue]
আপনি দেখতে পাচ্ছেন, আমাদের কোড Orange এবং Blue আমাদের lamp_colors ভেক্টরে যোগ করেছে।
মনে করুন ম্যানুফ্যাকচারার আমাকে জানিয়েছে যে তারা ধূসর রঙের ল্যাম্পও সরবরাহ করবে। আমরা ধূসর ল্যাম্প আমাদের তালিকার শুরুতে যোগ করতে চাই কারণ আমরা আশা করি সেটি অন্যান্য রংর চেয়ে জনপ্রিয় হবে। আমরা উপরের উদাহরণ থেকে এই কোডটি যোগ করে তা করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Orange"); lamp_colors.add("Blue"); lamp_colors.add(0, "Gray"); System.out.println("Vector: " + lamp_colors); } }
আমাদের কোড রিটার্ন করে:
Vector: [Gray, Orange, Blue]
এই উদাহরণে, আমরা add() মেথড ব্যবহার করেছি Gray কে lamp_colors ভেক্টরে যোগ করতে। আমরা আমাদের কোডে ইনডেক্স প্যারামিটার ০ নির্দিষ্ট করেছি যা add() কে বলে ইনডেক্স পজিশন ০-তে Gray আইটেমটি যোগ করতে। অন্য কথায়, আমরা Gray কে আমাদের ভেক্টরের শুরুতে যোগ করেছি। তারপর আমরা আমাদের প্রোগ্রামকে পুরো ভেক্টর প্রিন্ট আউট করার জন্য বলে দিই।
ভেক্টর মার্জ করা
addAll() মেথডটি একটি ভেক্টর থেকে অন্য ভেক্টরে সব এলিমেন্ট যোগ করতে ব্যবহৃত হয়।
মনে করুন আমাদের দুটি তালিকা আছে: কালার রেঞ্জ এবং ল্যাম্প কালার। আমরা এই দুটি তালিকা একসাথে মার্জ করতে চাই কারণ আমাদের ল্যাম্প ম্যানুফ্যাকচারার আমাকে বলেছে যে তারা আমাদের কালার রেঞ্জের সব রংএ ল্যাম্প তৈরি করতে পারবে। আমরা এই দুটি ভেক্টর লিস্ট একসাথে মার্জ করতে নিচের কোডটি ব্যবহার করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> color_range = new Vector<>(); Vector<String> lamp_colors = new Vector<>(); color_range.add("Blue"); color_range.add("Black"); color_range.add("Gray"); color_range.add("Pink"); color_range.add("Orange"); lamp_colors.addAll(color_range); System.out.println("Color range: " + color_range); System.out.println("Lamp colors: " + lamp_colors); } }
আমাদের কোড রিটার্ন করে:
Color range: [Blue, Black, Gray, Pink, Orange] Lamp colors: [Blue, Black, Gray, Pink, Orange]
আমাদের কোড প্রথমে আমাদের কালার রেঞ্জের রংগুলো color_range ভেক্টরে যোগ করল। তারপর আমরা addAll() ব্যবহার করল color_range থেকে সব রং lamp_colors ভেক্টরে যোগ করতে। আমাদের কোডের শেষ লাইনগুলোতে, আমরা color_range এবং lamp_colors দুটির কন্টেন্ট কনসোলে প্রিন্ট করলাম।
ভেক্টর থেকে এলিমেন্ট রিট্রিভ করা
get() মেথডটি একটি ভেক্টর থেকে একটি নির্দিষ্ট এলিমেন্ট রিট্রিভ করতে ব্যবহৃত হয়। get() এক প্যারামিটার গ্রহণ করে: যে আইটেমটি আপনি রিট্রিভ করতে চান তার ইনডেক্স ভ্যালু।
মনে করুন আমাদের ল্যাম্প রংগুলির তালিকা অ্যালফাবেটিক্যালি সাজানো আছে এবং আমরা আমাদের তালিকার প্রথম আইটেমটি রিট্রিভ করতে চাই। আমরা এটি এই কোড দিয়ে করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); String first_element = lamp_colors.get(0); System.out.println("First element in list: " + first_element); } }
আমাদের কোড রিটার্ন করে:
First element in list: Black
আমাদের কোডে, আমরা get() মেথড ব্যবহার করেছি lamp_colors ভেক্টরের প্রথম আইটেম রিট্রিভ করতে। আমরা ইনডেক্স প্যারামিটার ০ নির্দিষ্ট করেছি, যা আমাদের কোডকে বলে ভেক্টরের প্রথম আইটেমটি রিট্রিভ করতে, অর্থাৎ ইনডেক্স পজিশন ০-তে থাকা আইটেমটি। তারপর, আমরা কনসোলে তালিকার প্রথম এলিমেন্টটি প্রিন্ট করি, যার আগে থাকে মেসেজ First element in list:।
ভেক্টর থেকে এলিমেন্ট রিমুভ করা
একটি ভেক্টর থেকে এলিমেন্ট রিমুভ করতে তিনটি মেথড ব্যবহার করা যায়: remove(), removeAll(), এবং clear().
একক এলিমেন্ট রিমুভ করা
remove() মেথডটি একটি ভেক্টর থেকে একটি একক এলিমেন্ট রিমুভ করতে ব্যবহৃত হয়। remove() accepts one parameter: the index position of the element you want to remove from a vector.
ডিপার্টমেন্ট স্টোরে ফিরে যাই। আমাদের ম্যানুফ্যাকচারার আমাকে জানিয়েছে যে তারা আর আমাদের নারঙ্গি ল্যাম্প তৈরি করতে পারবে না, এবং তাই আমাদের ল্যাম্প বিক্রির রং তালিকা থেকে সেটি রিমুভ করতে হবে। আমরা এটি এই কোড দিয়ে করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); lamp_colors.remove(3); System.out.println("New color list: " + lamp_colors); } }
আমাদের কোড রিটার্ন করে:
New color list: [Black, Blue, Gray, Pink]
আমরা remove() মেথড ব্যবহার করেছি আমাদের লিস্টে ইনডেক্স পজিশন ৩-তে থাকা আইটেম রিমুভ করতে। এই কেসে, সেই আইটেমের মান হলো Orange। তারপর আমরা রিভাইজড কালার লিস্ট কনসোলে প্রিন্ট করি, যার আগে থাকে মেসেজ New color list:।
সব এলিমেন্ট রিমুভ করা
removeAll() এবং clear() মেথডগুলো একটি লিস্ট থেকে সব এলিমেন্ট রিমুভ করতে ব্যবহৃত হয়। সাধারণত, clear() ব্যবহার করা পছন্দ করা হয় কারণ এটি আরও দক্ষ, কিন্তু আপনি removeAll() মেথডও ব্যবহার করতে পারেন।
মনে করুন ম্যানুফ্যাকচারার সিদ্ধান্ত নিয়েছে যে তারা আপনার ল্যাম্প আর তৈরি করতে পারবে না কারণ তারা তাদের অপারেশন ছোট করছে। তাই, আমরা নতুন ম্যানুফ্যাকচারার খুঁজে পাওয়া পর্যন্ত আর ল্যাম্প বিক্রি করব না। আমরা আমাদের বিক্রি করা ল্যাম্পের সব রং রিমুভ করতে নিচের লিস্ট ব্যবহার করতে পারি:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); lamp_colors.clear(); System.out.println("New color list: " + lamp_colors); } }
আমাদের কোড রিটার্ন করে:
New color list: []
আমরা clear() মেথড ব্যবহার করেছি lamp_colors ভেক্টরের সব এলিমেন্ট রিমুভ করতে। তারপর, আমাদের কোডের শেষ লাইনে, আমরা ফ্রেজ New color list: “, এবং খালি ভেক্টর প্রিন্ট করলাম।
জাভা Vector এবং ArrayList
ArrayList এবং Vector দুটোই জাভা লিস্ট ইন্টারফেস ইমপ্লিমেন্ট করে। এই ক্লাসগুলো একই মেথডগুলো প্রদান করে। য coppia, এই দুটি ক্লাসের মধ্যে কিছু পার্থক্য আছে।
মূল পার্থক্য হলো Vector ক্লাস সিনক্রোনাইজড (synchronized), যার মানে একবারে শুধু একটি থ্রেড কোডটি অ্যাক্সেস করতে পারে। ArrayList, অন্যদিকে, আনসিনক্রোনাইজড (unsynchronized), এবং তাই একাধিক থ্রেড একসাথে লিস্টে কাজ করতে পারে।
অতিরিক্ত Vector মেথড
অতিরিক্তভাবে, কিছু আরো মেথড আছে যা একটি ভেক্টরে স্টোর করা ডেটা ম্যানিপুলেট করতে ব্যবহৃত হয়। এই মেথডগুলো রেফারেন্স টেবিলে নিচে দেওয়া হলো:
| মেথডের নাম | বিবরণ |
| contains() | একটি ভেক্টরে নির্দিষ্ট মান খোঁজা |
| iterator() | একটি ভেক্টর এর মধ্য দিয়ে ইটারেট করা |
| set() | একটি ভেক্টরে একটি এলিমেন্ট পরিবর্তন করা |
| size() | একটি ভেক্টর এর দৈর্ঘ্য রিটার্ন করা |
| toArray() | একটি ভেক্টর কে অ্যারেতে রূপান্তর করা |
| toString() | একটি ভেক্টর কে স্ট্রিং এ রূপান্তর করা |
উপসংহার
Vector ক্লাস জাভাতে List ইন্টারফেস ব্যবহার করে ডেটা স্টোর করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি Vector একটি ডিপার্টমেন্ট স্টোরে বিক্রি হওয়া পণ্যের তালিকা বা একটি স্থানীয় ড্রাগ স্টোরে উপলব্ধ সাপ্লিমেন্টের তালিকা স্টোর করতে ব্যবহৃত হয়।
এই টিউটোরিয়ালে জাভা Vector ক্লাসের বেসিকস, কীভাবে একটি ভেক্টর তৈরি করতে হয়, এবং Vector এবং ArrayList-এর মধ্যে মূল পার্থক্য নিয়ে আলোচনা করা হয়েছে। 덧붙ি, এই টিউটোরিয়ালে উদাহরণসহ একটি ভেক্টরের কন্টেন্ট রিট্রিভ এবং ম্যানিপুলেট করার জন্য প্রধান মেথডগুলো নিয়ে আলোচনা করা হয়েছে।
এখন আপনার কাছে জাভাতে Vector ক্লাস প্রোফেশনালের মত ব্যবহার করার জন্য দক্ষতা আছে!