অ্যারে (Array) একটি কন্টেইনার যা একটি নির্দিষ্ট সংখ্যক আইটেম ধারণ করতে পারে এবং এই আইটেমগুলো একই টাইপের হতে হবে। অধিকাংশ ডেটা স্ট্রাকচার তাদের অ্যালগরিদম ইমপ্লিমেন্ট করার জন্য অ্যারে ব্যবহার করে। অ্যারে বুঝতে গুরুত্বপূর্ণ কিছু টার্ম:
- Element (এলিমেন্ট): অ্যারেতে সংরক্ষিত প্রতিটি আইটেমকে এলিমেন্ট বলা হয়।
- Index (ইন্ডেক্স): অ্যারেতে একটি এলিমেন্টের লোকেশন একটি সংখ্যাসূচক ইন্ডেক্স থাকে, যা এলিমেন্ট শনাক্ত করতে ব্যবহৃত হয়।
অবজেক্ট অ্যারে তৈরি করা
হ্যাঁ, যেহেতু জাভায় অবজেক্টও ডেটা টাইপ (রেফারেন্স) হিসেবে বিবেচিত হয়, আপনি একটি নির্দিষ্ট ক্লাসের টাইপের অ্যারে তৈরি করতে পারেন এবং সেটিকে সেই ক্লাসের ইনস্ট্যান্স দিয়ে পপুলেট (populate) করতে পারেন।
উদাহরণ
নিচের জাভা উদাহরণে Std নামে একটি ক্লাস আছে এবং পরে প্রোগ্রামে আমরা Std টাইপের একটি অ্যারে তৈরি করছি, সেটিকে পপুলেট করছি এবং অ্যারের সব এলিমেন্টের ওপর একটি মেথড ইনভোক (invoke) করছি।
class Std {
private static int year = 2018;
private String name;
private int age;
public Std(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void display() {
System.out.println("Name: " + this.name);
System.out.println("Age: " + this.age);
System.out.println("Year: " + Std.year);
}
}
public class Sample {
public static void main(String args[]) throws Exception {
// Std টাইপের অবজেক্ট সংরক্ষণের জন্য অ্যারে তৈরি
Std st[] = new Std[4];
// অ্যারে পপুলেট করা
st[0] = new Std("Bala", 18);
st[1] = new Std("Rama", 17);
st[2] = new Std("Raju", 15);
st[3] = new Std("Raghav", 20);
// অ্যারের প্রতিটি অবজেক্টে display মেথড ইনভোক করা
for (int i = 0; i < st.length; i++) {
st[i].display();
System.out.println(" ");
}
}
}
আউটপুট
Name: Bala Age: 18 Year: 2018 Name: Rama Age: 17 Year: 2018 Name: Raju Age: 15 Year: 2018 Name: Raghav Age: 20 Year: 2018
অবজেক্ট অ্যারের অসুবিধা (Disadvantages)
- অবজেক্ট অ্যারেতে স্টোর করার জন্য প্রায়শই অ্যারের দৈর্ঘ্য জানা দরকার হয়, যা সবসময় সম্ভব নয়।
- একবার অবজেক্ট অ্যারে তৈরি করলে এর কন্টেন্ট মডিফাই করা যায় না, কালেকশন (Collections) এর মতো কোনো মেথড নেই।
- মেমরি সমস্যা ধরে রাখলে অবজেক্ট অ্যারে ব্যবহার করা রিকমেন্ড (recommended) নয়।