CodeGym /Java Blog /এলোমেলো /জাভাতে অ্যারে
John Squirrels
লেভেল 41
San Francisco

জাভাতে অ্যারে

এলোমেলো দলে প্রকাশিত
একটি স্টোরেজ রুমে ক্যাবিনেটের কল্পনা করুন। তাদের প্রত্যেকের নিজস্ব নম্বর রয়েছে এবং তাদের প্রত্যেকে কিছু ব্যাগেজ বস্তু সঞ্চয় করে। অথবা একটি ওয়াইনের তালিকা যেখানে প্রতিটি ধরণের ওয়াইন সংখ্যাযুক্ত এবং আপনি আপনার পানীয়ের নম্বর দিয়ে অর্ডার করুন। অথবা শিক্ষার্থীদের একটি তালিকা যেখানে "অ্যাডামস" প্রথম অবস্থানে এবং "জিমার" সর্বশেষে রেকর্ড করা হয়েছে। অথবা একটি বিমানের যাত্রীদের একটি তালিকা, যাদের প্রত্যেককে একটি নম্বরযুক্ত আসন বরাদ্দ করা হয়েছে। জাভাতে, অ্যারেগুলি প্রায়শই এই জাতীয় কাঠামোর সাথে কাজ করতে ব্যবহৃত হয়, যেমন একজাতীয় ডেটার সেট।

কোডজিম কোর্সে অ্যারে

কোডজিমে, আপনি জাভা সিনট্যাক্স কোয়েস্টের লেভেল 7-এ অ্যারে নিয়ে কাজ শুরু করেন। তিনটি পাঠ তাদের জন্য উত্সর্গীকৃত, সেইসাথে অ্যারেগুলির সাথে আপনার দক্ষতাকে একীভূত করার জন্য বিভিন্ন স্তরে 8টি কাজ। কিন্তু আপনি কোর্স চলাকালীন অনেকবার অ্যারের মুখোমুখি হবেন (বিশেষ করে, অ্যারে ক্লাসটি জাভা সংগ্রহ অনুসন্ধানে এবং আপনার ভবিষ্যতের কাজের অংশ হিসাবে অধ্যয়ন করা হবে।

একটি অ্যারে কি?

অ্যারে হল একটি ডেটা স্ট্রাকচার যা একই ধরনের উপাদান সংরক্ষণ করে। আপনি এটিকে সংখ্যাযুক্ত কোষের সেট হিসাবে ভাবতে পারেন। আপনি প্রতিটি ঘরে কিছু ডেটা রাখতে পারেন (প্রতি কক্ষে একটি ডেটা উপাদান)। একটি নির্দিষ্ট সেল এর নম্বর ব্যবহার করে অ্যাক্সেস করা হয়। অ্যারেতে একটি উপাদানের সংখ্যাকে একটি সূচকও বলা হয় । জাভাতে, একটি অ্যারে সমজাতীয়, অর্থাৎ এর সমস্ত কোষে একই ধরণের উপাদান থাকে। এইভাবে, পূর্ণসংখ্যার একটি অ্যারে শুধুমাত্র পূর্ণসংখ্যা ( int ), স্ট্রিংগুলির একটি অ্যারে - শুধুমাত্র স্ট্রিং এবং একটি ডগ ক্লাসের উদাহরণগুলির একটি অ্যারে যা আমরা তৈরি করেছি শুধুমাত্র ডগ অবজেক্ট ধারণ করে । অন্য কথায়, জাভা আমাদের অ্যারের প্রথম ঘরে একটি পূর্ণসংখ্যা, দ্বিতীয়টিতে একটি স্ট্রিং এবং তৃতীয়টিতে একটি কুকুর রাখতে দেবে না।জাভাতে অ্যারে - 2

একটি অ্যারে ঘোষণা

আপনি কিভাবে একটি অ্যারে ঘোষণা করবেন?

যেকোনো ভেরিয়েবলের মতো, জাভাতে একটি অ্যারে ঘোষণা করা আবশ্যক। এই দুটি পদ্ধতির মধ্যে করা সম্ভব। তারা সমতুল্য, কিন্তু প্রথম উপায় জাভা শৈলীর সাথে আরও সামঞ্জস্যপূর্ণ। দ্বিতীয়টি হল সি ভাষার একটি উত্তরাধিকার: অনেক সি প্রোগ্রামার জাভাতে স্যুইচ করেছিল এবং তাদের সুবিধার জন্য একটি বিকল্প পদ্ধতি রাখা হয়েছিল। টেবিলটি জাভাতে একটি অ্যারে ঘোষণা করার উভয় উপায় দেখায়:
না. একটি অ্যারে ঘোষণা, জাভা সিনট্যাক্স উদাহরণ মন্তব্য করুন
1.
dataType[] arrayName;

int[] myArray;

Object[] 
arrayOfObjects;  
এইভাবে একটি অ্যারে ঘোষণা করা যুক্তিযুক্ত। এটি জাভা স্টাইল।
2.
dataType arrayName[];

int myArray[];

Object 
arrayOfObjects[];
অ্যারে ঘোষণা পদ্ধতি C/C++ থেকে উত্তরাধিকারসূত্রে প্রাপ্ত, জাভাতে কাজ করে
উভয় ক্ষেত্রেই, dataType হল অ্যারের ভেরিয়েবলের ধরন। উদাহরণে, আমরা দুটি অ্যারে ঘোষণা করেছি। একটি int s সংরক্ষণ করবে , এবং অন্যটি - অবজেক্ট অবজেক্ট। সুতরাং, একটি অ্যারের ঘোষণার একটি নাম এবং প্রকার রয়েছে (অ্যারের উপাদানগুলির ধরণ)। ArrayName অ্যারের নাম।

একটি অ্যারে তৈরি করা হচ্ছে

আপনি কিভাবে একটি অ্যারে তৈরি করবেন?

অন্য যেকোন অবজেক্টের মতো, আপনি একটি জাভা অ্যারে তৈরি করতে পারেন, অর্থাৎ নতুন অপারেটর ব্যবহার করে এটির জন্য মেমরিতে একটি জায়গা সংরক্ষণ করুন। এই তার কাজ হল কিভাবে:

new typeOfArray[length]; 
যেখানে typeOfArray হল অ্যারের প্রকার এবং দৈর্ঘ্য হল এর দৈর্ঘ্য (অর্থাৎ কক্ষের সংখ্যা) সম্পূর্ণ সংখ্যা ( int) হিসাবে প্রকাশ করা। কিন্তু মনে রাখবেন যে এখানে আমরা শুধুমাত্র অ্যারের জন্য মেমরি বরাদ্দ করেছি — আমরা ঘোষিত অ্যারেকে পূর্বে ঘোষিত কোনো ভেরিয়েবলের সাথে যুক্ত করিনি। সাধারণত, একটি অ্যারে প্রথমে ঘোষণা করা হয় এবং তারপরে তাত্ক্ষণিক করা হয়, উদাহরণস্বরূপ:

int[] myArray; // Array declaration
myArray = new int[10]; // Create (allocate memory for) an array of 10 ints
এখানে আমরা myArray নামক পূর্ণসংখ্যার একটি অ্যারে তৈরি করেছি , কম্পাইলারকে জানিয়েছি যে এটি 10টি কোষ নিয়ে গঠিত (যার প্রতিটিতে একটি পূর্ণসংখ্যা থাকবে)। যাইহোক, ঘোষিত হওয়ার সাথে সাথে একটি অ্যারে তৈরি করতে নিম্নলিখিত সংক্ষিপ্ত সিনট্যাক্স ব্যবহার করা অনেক বেশি সাধারণ:

int[] myArray = new int [10]; // Declare the array and allocate memory "in one blow"
দয়া করে নোট করুন:নতুন অপারেটর ব্যবহার করে একটি অ্যারে তৈরি করার পরে , এর কোষগুলিতে ডিফল্ট মান থাকে। সাংখ্যিক প্রকারের জন্য (আমাদের উদাহরণের মতো), ডিফল্ট মান হল 0, বুলিয়ান টাইপের জন্য, এটি মিথ্যা , এবং রেফারেন্স প্রকারের জন্য, এটি null । এইভাবে, এই বিবৃতি কার্যকর করার পরে

int[] myArray = new int[10];
আমরা দশটি পূর্ণসংখ্যার একটি অ্যারে পাই এবং যতক্ষণ না প্রোগ্রামটি মান পরিবর্তন করার জন্য কিছু করে, প্রতিটি ঘরে 0 থাকে।

আপনি " অ্যারে সম্পর্কে কিছু " নিবন্ধে অ্যারে সম্পর্কে আরও তথ্য পেতে পারেন

জাভাতে অ্যারের দৈর্ঘ্য

আমরা উপরে বলেছি, একটি অ্যারের দৈর্ঘ্য হল উপাদানগুলির সংখ্যা যা অ্যারেটি ধরে রাখার জন্য ডিজাইন করা হয়েছে। একটি অ্যারের দৈর্ঘ্য এটি তৈরি করার পরে পরিবর্তন করা যাবে না। দয়া করে নোট করুনযে অ্যারের উপাদানগুলি জাভাতে শূন্য থেকে শুরু করে সংখ্যাযুক্ত। এইভাবে, যদি আমাদের 10টি উপাদানের একটি অ্যারে থাকে, তাহলে প্রথম উপাদানটির সূচকটি 0 এবং শেষটির সূচকটি 9 হয়। আপনি দৈর্ঘ্য পরিবর্তনশীল জাভাতে অ্যারে - 3ব্যবহার করে অ্যারের দৈর্ঘ্য পেতে পারেন । উদাহরণ স্বরূপ:

int[] myArray = new int[10]; // Create an int array for 10 elements and name it myArray
System.out.println(myArray.length); // Display the array's length, i.e. the number of elements we can put into the array
আউটপুট:

10

একটি অ্যারে শুরু করা এবং এর উপাদানগুলি অ্যাক্সেস করা

এখন আমরা জানি কিভাবে জাভাতে একটি অ্যারে তৈরি করতে হয়। প্রক্রিয়াটি আমাদের একটি খালি অ্যারে নয়, তবে ডিফল্ট মান দিয়ে ভরা একটি অ্যারে পায়। উদাহরণস্বরূপ, একটি int অ্যারের জন্য, এটি 0, এবং যদি আমাদের কোনো রেফারেন্স টাইপের একটি অ্যারে থাকে, তাহলে প্রতিটি ঘরে ডিফল্ট হল নাল । আমরা একটি অ্যারে উপাদান অ্যাক্সেস করি (উদাহরণস্বরূপ, এটির মান সেট করতে, এটি স্ক্রিনে প্রদর্শন করতে, বা এটির সাথে কিছু অপারেশন সম্পাদন করতে) তার সূচক দ্বারা। অ্যারে ইনিশিয়ালাইজেশন হল নির্দিষ্ট মান দিয়ে একটি অ্যারে পূরণ করার প্রক্রিয়া (ডিফল্ট ছাড়া)। উদাহরণ: আসুন 4টি ঋতুর জন্য একটি স্ট্রিং অ্যারে তৈরি করি এবং ঋতুগুলির নাম দিয়ে এটি পূরণ করি।

String[] seasons = new String[4]; /* Declare and create an array. Java allocates memory for an array of 4 strings, and each cell is set to null (since String is a reference type) */ 

seasons[0] = "Winter"; /* We set the first cell, i.e. the cell with index zero, to "Winter". Here we access the zeroth element of the array and write a specific value to it. */ 
seasons[1] = "Spring"; // We follow a similar procedure for the cell with index 1 (the second cell)
seasons[2] = "Summer"; // ... index 2
seasons[3] = "Autumn"; // and finally, index 3
এখন আমাদের অ্যারের চারটি ঘরে ঋতুর নাম লেখা হয়। ঘোষণা এবং সূচনা একত্রিত করে আমরা অ্যারেটিকে অন্যভাবে আরম্ভ করতে পারি:

String[] seasons = new String[] {"Winter", "Spring", "Summer", "Autumn"};
আরও কি, নতুন অপারেটর বাদ দেওয়া যেতে পারে:

String[] seasons = {"Winter", "Spring", "Summer", "Autumn"};

আপনি কিভাবে জাভা পর্দায় একটি অ্যারে প্রদর্শন করবেন?

আপনি একটি ফর লুপ ব্যবহার করে স্ক্রিনে (যেমন কনসোলে) অ্যারে উপাদানগুলি প্রদর্শন করতে পারেন । একটি অ্যারে প্রদর্শনের আরেকটি, সংক্ষিপ্ত উপায় " অ্যারেগুলির সাথে কাজ করার জন্য দরকারী পদ্ধতি " শিরোনামের অনুচ্ছেদে আলোচনা করা হবে । ইতিমধ্যে, এই উদাহরণটি দেখুন যেখানে একটি লুপ ব্যবহার করে একটি অ্যারে প্রদর্শিত হয়:

String[] seasons = new String {"Winter", "Spring", "Summer", "Autumn"}; 
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]); 
}
প্রোগ্রাম নিম্নলিখিত প্রদর্শন করবে:

Winter 
Spring 
Summer 
Autumn

জাভাতে এক-মাত্রিক এবং বহুমাত্রিক অ্যারে

কিন্তু যদি আমরা সংখ্যা, স্ট্রিং, বা অন্যান্য বস্তুর একটি অ্যারে তৈরি করতে চাই না, বরং অ্যারের একটি অ্যারে তৈরি করতে চাই? জাভা আপনাকে এটি করতে দেয়। যে ধরণের অ্যারের সাথে আমরা ইতিমধ্যেই পরিচিত ( int[] myArray = new int[8] ) সেটিকে এক-মাত্রিক অ্যারে বলা হয়। কিন্তু অ্যারের একটি অ্যারেকে দ্বিমাত্রিক অ্যারে বলা হয়। এটি একটি টেবিলের মতো যার একটি সারি নম্বর এবং একটি কলাম নম্বর রয়েছে। অথবা, আপনি যদি রৈখিক বীজগণিতের মূল বিষয়গুলি শিখে থাকেন তবে আপনি এটিকে ম্যাট্রিক্স হিসাবে ভাবতে পারেন। জাভাতে অ্যারে - 4কেন আমরা যেমন অ্যারে প্রয়োজন? ভাল, প্রোগ্রাম ম্যাট্রিক্স এবং টেবিল, সেইসাথে অন্যান্য অবজেক্ট যে একটি অনুরূপ গঠন আছে. উদাহরণস্বরূপ, একটি দাবাবোর্ড একটি 8x8 অ্যারে দ্বারা প্রতিনিধিত্ব করা যেতে পারে। একটি বহুমাত্রিক অ্যারে ঘোষণা করা হয় এবং নিম্নরূপ তৈরি করা হয়:

Int[][] myTwoDimentionalArray = new int[8][8];
এই অ্যারেটিতে ঠিক 64টি উপাদান রয়েছে: myTwoDimentionalArray[0][0] , myTwoDimentionalArray[0][1] , myTwoDimentionalArray[1][0] , myTwoDimentionalArray[1][1] এবং আরও কিছু myTwoDimentionalArray[7][7] . তাই যদি আমরা এটিকে একটি চেসবোর্ডের প্রতিনিধিত্ব করতে ব্যবহার করি, তাহলে A1 myTwoDimentionalArray[0][0] এর সাথে মিলে যায় এবং E2 myTwoDimentionalArray[4][1] এর সাথে মিলে যায় । কিন্তু আমরা এটা কতদূর ধাক্কা দিতে পারি? জাভাতে, আপনি অ্যারের একটি অ্যারে নির্দিষ্ট করতে পারেন... অ্যারের অ্যারের অ্যারে, এবং আরও অনেক কিছু। অবশ্যই, ত্রিমাত্রিক এবং উচ্চ-মাত্রিক অ্যারে খুব কমই ব্যবহার করা হয়। এটি বলেছিল, আপনি একটি রুবিক কিউব প্রোগ্রাম করার জন্য একটি ত্রিমাত্রিক অ্যারে ব্যবহার করতে পারেন, উদাহরণস্বরূপ।

অ্যারেগুলির সাথে কাজ করার জন্য দরকারী পদ্ধতি

অ্যারে নিয়ে কাজ করার জন্য জাভাতে java.util.Arrays ক্লাস আছে। সাধারণভাবে, অ্যারেতে সঞ্চালিত সবচেয়ে সাধারণ ক্রিয়াকলাপগুলি হল প্রারম্ভিকতা (উপাদান দিয়ে পূরণ করা), একটি উপাদান পুনরুদ্ধার করা (সূচী অনুসারে), বাছাই করা এবং অনুসন্ধান করা। অনুসন্ধান এবং অ্যারে বাছাই অন্য দিনের জন্য বিষয়. একদিকে, নিজে নিজে বেশ কয়েকটি অনুসন্ধান এবং সাজানোর অ্যালগরিদম লেখার জন্য এটি ভাল অভ্যাস। অন্যদিকে, সমস্ত সেরা অ্যালগরিদম ইতিমধ্যেই বাস্তবায়িত হয়েছে এবং স্ট্যান্ডার্ড জাভা লাইব্রেরিতে অন্তর্ভুক্ত করা হয়েছে এবং আপনি আইনত সেগুলি ব্যবহার করতে পারেন৷ এখানে এই ক্লাসে তিনটি দরকারী পদ্ধতি রয়েছে।

একটি অ্যারে বাছাই

void sort(int[] myArray, int fromIndex, int toIndex) পদ্ধতি একটি পূর্ণসংখ্যা অ্যারে বা সাবয়ারেকে আরোহী ক্রমে সাজায়।

একটি অ্যারে একটি উপাদান জন্য অনুসন্ধান

int binarySearch(int[] myArray, int fromIndex, int toIndex, int কী) । এই পদ্ধতিটি একটি সাজানো myArray অ্যারে বা subarray-এর মূল উপাদানের সন্ধান করে , fromIndex থেকে toIndex পর্যন্ত । যদি আইটেমটি পাওয়া যায়, তাহলে এটি তার সূচী প্রদান করে। অন্যথায়, এটি (-fromIndex)-1 প্রদান করে ।

একটি স্ট্রিং একটি অ্যারে রূপান্তর

String toString(int[] myArray) পদ্ধতি একটি অ্যারেকে স্ট্রিং-এ রূপান্তর করে। জাভাতে, অ্যারেগুলি স্ট্রিং() কে ওভাররাইড করে না । এর মানে হল যে আপনি যদি " স্ক্রীনে একটি অ্যারে প্রদর্শন করুন" শিরোনামের অনুচ্ছেদের মতো একবারে একটি উপাদানের পরিবর্তে একটি সম্পূর্ণ অ্যারে (System.out.println(myArray)) একবারে প্রদর্শন করার চেষ্টা করেন , আপনি পাবেন ক্লাসের নাম এবং অ্যারের হেক্সাডেসিমেল হ্যাশ ( Object.toString() দ্বারা সংজ্ঞায়িত )। আপনি যদি একজন শিক্ষানবিস হন, তাহলে আপনি toString পদ্ধতি সম্পর্কে ব্যাখ্যা বুঝতে পারবেন না । প্রাথমিকভাবে, আপনার প্রয়োজন নেই, তবে এই পদ্ধতিটি ব্যবহার করে একটি অ্যারে প্রদর্শন করা সহজ করে তোলে। জাভা আপনাকে লুপ ব্যবহার না করে সহজেই একটি অ্যারে প্রদর্শন করতে দেয়। নীচের উদাহরণ এটি প্রদর্শন করে.

সর্ট, বাইনারি সার্চ এবং toString ব্যবহার করে একটি উদাহরণ

আসুন পূর্ণসংখ্যার একটি অ্যারে তৈরি করি, toString ব্যবহার করে এটি প্রদর্শন করি, sort পদ্ধতি ব্যবহার করে সাজান এবং তারপর এতে কিছু সংখ্যা খুঁজে বের করি।

class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; // Declare and initialize the array
        System.out.println(array); // Try to display our array without using the toString method — the result is a hexadecimal number
        System.out.println(Arrays.toString(array)); // Display the array correctly 
        Arrays.sort(array, 0, 4); // Sort the entire array from the zeroth to the fourth element
        System.out.println(Arrays.toString(array)); // Display the sorted array
        int key = Arrays.binarySearch(array, 5); // Look for the number 5 in the sorted array. 
        // The binarySearch method will return the index of the array element we are searching for
        System.out.println(key); // Display the index of the number we searched for 
System.out.println(Arrays.binarySearch(array, 0)); // Now try to find a number that isn't in the array, 
        // and immediately display the result

    }
}
আউটপুট:

[I@1540e19d 
[1, 5, 4, 3, 7] 
[1, 3, 4, 5, 7] 
3 
-1
প্রথম স্ট্রিং হল toString ব্যবহার না করে অ্যারে প্রদর্শন করার একটি প্রচেষ্টা । দ্বিতীয়টি হল toString ব্যবহার করে প্রদর্শিত অ্যারে । তৃতীয়টি সাজানো অ্যারে। চতুর্থটি হল সাজানো অ্যারেতে (5) যে নম্বরটি আমরা অনুসন্ধান করেছি তার সূচী (মনে রাখবেন যে আমরা শূন্য থেকে গণনা করি, তাই অ্যারের চতুর্থ উপাদানটির সূচকটি 3)। পঞ্চম স্ট্রিং এ, আমরা -1 দেখতে. এটি একটি অবৈধ অ্যারে সূচক। এটি সংকেত দেয় যে আমরা যে নম্বরটি অনুসন্ধান করেছি (এই ক্ষেত্রে, 0) সেটি অ্যারেতে নেই।

অ্যারে ক্লাসে পদ্ধতি সম্পর্কে আরও

অ্যারে ক্লাস এবং এর ব্যবহার — এই নিবন্ধটি অ্যারে ক্লাসের কিছু পদ্ধতি বর্ণনা করে
অ্যারে ক্লাসে অ্যারেগুলির সাথে কাজ করার জন্য 18টি গুরুত্বপূর্ণ পদ্ধতি রয়েছে

সংক্ষেপে অ্যারে

  • একটি অ্যারের অপরিহার্য বৈশিষ্ট্য: এতে রাখা ডেটার ধরন, এর নাম এবং এর দৈর্ঘ্য।
    শেষ সম্পত্তি নির্ধারণ করা হয় যখন অ্যারে তৈরি করা হয় (যখন অ্যারের জন্য মেমরি বরাদ্দ করা হয়)। প্রথম দুটি বৈশিষ্ট্য নির্ধারণ করা হয় যখন অ্যারে ঘোষণা করা হয়।

  • অ্যারের আকার (কোষের সংখ্যা) অবশ্যই একটি int হতে হবে

  • এটি তৈরি হওয়ার পরে একটি অ্যারের দৈর্ঘ্য পরিবর্তন করা অসম্ভব।

  • একটি অ্যারে উপাদান তার সূচক দ্বারা অ্যাক্সেস করা যেতে পারে।

  • অ্যারেতে থাকা উপাদানগুলি, জাভাতে অন্য সব কিছুর মতো, শূন্য থেকে শুরু করে সংখ্যাযুক্ত।

  • একটি অ্যারে তৈরি হওয়ার পরে, এটি ডিফল্ট মান দিয়ে পূর্ণ হয়।

  • জাভাতে অ্যারেগুলি C++ এর অ্যারের মতো নয়। তারা প্রায় গতিশীল অ্যারে পয়েন্টার মত.

অ্যারে সম্পর্কে দরকারী উপকরণ

অ্যারে সম্পর্কে আরও জানতে চান? নীচের নিবন্ধগুলি দেখুন. এই বিষয়ে আকর্ষণীয় এবং দরকারী উপাদান অনেক আছে.
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION