Java-তে অ্যারে হলো একই টাইপের একাধিক মান একটি কাঠামোতে সংরক্ষণ করার একটি উপায়। অন্য ডেটা স্ট্রাকচারের মতো নয়, অ্যারে একবার তৈরি হয়ে গেলে তার আকার নির্দিষ্ট হয়ে যায়। ইনডেক্স ব্যবহার করে অ্যারেতে এলিমেন্ট অ্যাসাইন করা যায়, আবার সেখান থেকে এলিমেন্ট পাওয়া যায়। Java অ্যারে জিরো-বেজড ইনডেক্সিং ব্যবহার করে: প্রথম এলিমেন্টের ইনডেক্স 0, দ্বিতীয় এলিমেন্টের ইনডেক্স 1, ইত্যাদি।
অ্যারে ইনিশিয়ালাইজ করার স্ট্যান্ডার্ড সিনট্যাক্স হলো এরকম:
type[] variableName = new type[size];
এখানে type হলো অ্যারের এলিমেন্টগুলোর টাইপ, যা একটি প্রিমিটিভ টাইপ (যেমন int) বা একটি ক্লাস (যেমন String) হতে পারে।
size হলো এই অ্যারেতে যতগুলো এলিমেন্ট রাখা যাবে সেই সংখ্যা (যা পরে আর পরিবর্তন করা যায় না)।
অ্যারে তৈরি হওয়ার পর এলিমেন্টগুলো তাদের ডিফল্ট মানে (সাধারণত 0, false বা null) ইনিশিয়ালাইজ হয়ে যায়।
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
শর্টকাট নোটেশন দিয়েও অ্যারে ডিফাইন করা যায়, যেখানে একসাথে অ্যারে তৈরি ও তার মান সেট করা যায়:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
এখন কম্পাইলার নিজেই বুঝতে পারে অ্যারেতে কতগুলো এলিমেন্ট থাকবে, তাই দৈর্ঘ্য বাদ দেওয়া যায়।
বন্ধনীতে ইনডেক্স লিখে অ্যারের এলিমেন্ট অ্যাসাইন ও অ্যাক্সেস করা যায়:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
অ্যারের বৈধ ইনডেক্সের বাইরের কোনো ইনডেক্স অ্যাক্সেস করলে IndexOutOfBoundsException হয়।
অ্যারের ইনস্ট্যান্সের মেথড বা প্রপার্টি কল করে, অথবা Arrays ক্লাসে ডিফাইন করা স্ট্যাটিক মেথড ব্যবহার করে অ্যারে নিয়ে কাজ করা যায় (সাধারণত শুধু জেনেরিক কোডে ব্যবহৃত হয়)।
length প্রপার্টিতে অ্যারের দৈর্ঘ্য থাকে।
এভাবে তা অ্যাক্সেস করা যায়:
int arrayLength = someArray.length;
Java আরও একটি কাজের ইউটিলিটি ক্লাস java.util.Arrays দেয়, যেখানে অ্যারে সংক্রান্ত অনেক কাজের মেথড আছে (যেমন Arrays.equals)।
Java মাল্টি-ডাইমেনশনাল অ্যারে-ও সাপোর্ট করে, যেমন int[][] arr = new int[3][4];, যা খুব কাজে লাগতে পারে।
অ্যারে আসলে একটি _কালেকশন_ও, তাই ইনডেক্স দিয়ে মান অ্যাক্সেস করার পাশাপাশি for-each লুপ ব্যবহার করে এর সব মানের উপর ইটারেট করা যায়:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
কোন মানগুলোর উপর ইটারেট করবেন সেসম্পর্কে বেশি নিয়ন্ত্রণ চাইলে for লুপ ব্যবহার করা যায়:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei