Java তে multidimensional array মানে একাধিক একক (single) array এর সমন্বয়। সাধারণত এটি একটি array of arrays হিসেবে কাজ করে। তবে, Java রিফ্লেকশন (Reflection) ব্যবহার করে multidimensional array তৈরি, অ্যাক্সেস, এবং ম্যানিপুলেট করা যেতে পারে।
java.lang.reflect.Array ক্লাসটি Arrays নিয়ে কাজ করার জন্য রিফ্লেকশন প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস। এটি আপনাকে ডাইনামিকভাবে অ্যারে তৈরি এবং তার মাপ (size) নিয়ন্ত্রণ করার সুযোগ দেয়।
Multidimensional Array তৈরি ও অ্যাক্সেস করা:
- Multidimensional Array তৈরি:
- Java Reflection ব্যবহার করে আপনি
Array.newInstance()মেথডের মাধ্যমে multidimensional array তৈরি করতে পারেন। - প্রথমে, আপনি একাধিক মাত্রার জন্য array তৈরি করতে পারেন এবং তারপরে নির্দিষ্ট ধরনের elements সেট করতে পারেন।
- Java Reflection ব্যবহার করে আপনি
- Multidimensional Array এর মান অ্যাক্সেস করা:
Array.get()মেথডের মাধ্যমে array এর প্রতিটি মান (value) অ্যাক্সেস করা যেতে পারে।
- Multidimensional Array এর মান পরিবর্তন করা:
Array.set()মেথড ব্যবহার করে array এর নির্দিষ্ট index এ মান সেট করা সম্ভব।
কোড উদাহরণ:
এখানে একটি 2D (দ্বিমাত্রিক) array এবং 3D (তিনমাত্রিক) array তৈরি এবং ম্যানিপুলেট করার উদাহরণ দেওয়া হল।
২ডি অ্যারে (2D Array) তৈরি ও হ্যান্ডল করা:
import java.lang.reflect.Array;
public class ReflectionMultidimensionalArrayExample {
public static void main(String[] args) {
try {
// 2D Array তৈরি (3 rows এবং 4 columns)
Class<?> clazz = Integer.TYPE; // Integer টাইপের Array তৈরি
Object array2D = Array.newInstance(clazz, 3, 4); // 3x4 Multidimensional Array
// 2D Array এর মান সেট করা
Array.set(Array.get(array2D, 0), 0, 10); // Row 0, Column 0 = 10
Array.set(Array.get(array2D, 0), 1, 20); // Row 0, Column 1 = 20
Array.set(Array.get(array2D, 1), 0, 30); // Row 1, Column 0 = 30
Array.set(Array.get(array2D, 1), 1, 40); // Row 1, Column 1 = 40
Array.set(Array.get(array2D, 2), 0, 50); // Row 2, Column 0 = 50
// 2D Array এর মান পড়া
System.out.println("2D Array Values:");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(Array.get(Array.get(array2D, i), j) + " ");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- 2D Array তৈরি:
Array.newInstance(clazz, 3, 4)মেথড ব্যবহার করে আমরা একটি 2D array তৈরি করেছি, যেখানে 3টি row এবং 4টি column রয়েছে।clazzদিয়ে array এর টাইপ (এখানেInteger.TYPE) উল্লেখ করা হয়েছে।
- Array.set() মেথড:
Array.set(Array.get(array2D, 0), 0, 10)এর মাধ্যমে আমরা প্রথম row (0th index) এবং প্রথম column (0th index) তে 10 সেট করেছি।
- Array.get() মেথড:
Array.get(Array.get(array2D, i), j)এর মাধ্যমে আমরা নির্দিষ্ট row এবং column এর মান পড়েছি।
৩ডি অ্যারে (3D Array) তৈরি ও হ্যান্ডল করা:
import java.lang.reflect.Array;
public class ReflectionMultidimensionalArrayExample {
public static void main(String[] args) {
try {
// 3D Array তৈরি (2 layers, 3 rows, 4 columns)
Class<?> clazz = Integer.TYPE;
Object array3D = Array.newInstance(clazz, 2, 3, 4); // 2x3x4 3D Array
// 3D Array এর মান সেট করা
Array.set(Array.get(Array.get(array3D, 0), 0), 0, 10); // Layer 0, Row 0, Column 0 = 10
Array.set(Array.get(Array.get(array3D, 1), 2), 3, 40); // Layer 1, Row 2, Column 3 = 40
// 3D Array এর মান পড়া
System.out.println("3D Array Values:");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
System.out.print(Array.get(Array.get(Array.get(array3D, i), j), k) + " ");
}
System.out.println();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- 3D Array তৈরি:
Array.newInstance(clazz, 2, 3, 4)ব্যবহার করে একটি 3D array তৈরি করা হয়েছে, যার 2টি layer, 3টি row এবং 4টি column রয়েছে।
- Array.set() এবং Array.get():
- আমরা একইভাবে
Array.set()এবংArray.get()মেথডের মাধ্যমে 3D array এর বিভিন্ন layer, row এবং column এর মান সেট ও পড়েছি।
- আমরা একইভাবে
Multidimensional Array এর অন্যান্য কার্যক্রম:
- Array.getLength():
Array.getLength(array)মেথড ব্যবহার করে আপনি অ্যারের আকার বা লেংথ জানতে পারেন।উদাহরণ:
int length = Array.getLength(array3D); // 3D Array এর আকার System.out.println("Length of 3D Array: " + length);
- Nested Arrays:
- রিফ্লেকশন ব্যবহার করে আপনি যে কোন স্তরের (dimension) nested array অ্যাক্সেস করতে পারবেন, যেমন 4D, 5D বা তারও বেশি।
Java Reflection এর মাধ্যমে আপনি multidimensional arrays তৈরি, অ্যাক্সেস এবং ম্যানিপুলেট করতে পারেন। Array.newInstance() মেথডের সাহায্যে বিভিন্ন মাত্রার অ্যারে তৈরি করা সম্ভব এবং Array.get() এবং Array.set() মেথড ব্যবহার করে তাদের মান পড়া এবং পরিবর্তন করা যায়। এই পদ্ধতিটি খুবই উপকারী যখন আপনি ডাইনামিকভাবে বিভিন্ন আকারের অ্যারে হ্যান্ডল করতে চান।
Read more