1. String
অ্যারে
String
আমি আপনাকে অ্যারে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ দিতে চাই ।
আমরা আগেই বলেছি, অ্যারে যেকোনো ধরনের হতে পারে। String
এর মানে আপনি s এর একটি অ্যারে তৈরি করতে পারেন । আমরা যদি এমন একটি প্রোগ্রাম লিখতে চাই যেটি "কীবোর্ড থেকে 10টি লাইন পড়ে এবং তাদের বিপরীত ক্রমে প্রদর্শন করে" তাহলে কোডটি দেখতে কেমন হবে তা এখানে:
|
একটি Scanner অবজেক্ট তৈরি করুন একটি 10-এলিমেন্ট অ্যারে অবজেক্ট তৈরি করুন 0 থেকে 9 পর্যন্ত লুপ করুন কীবোর্ড থেকে একটি স্ট্রিং পড়ুন এবং অ্যারের পরবর্তী ঘরে এটি সংরক্ষণ করুন 9 থেকে 0 পর্যন্ত লুপ করুন অ্যারের পরবর্তী ঘরটি প্রদর্শন করুন |
কোড সবে পরিবর্তিত! অ্যারে তৈরি করার সময় আমাদের শুধুমাত্র int
সাথে প্রতিস্থাপন করতে হয়েছিল । String
ঠিক আছে, এবং কীবোর্ড থেকে স্ট্রিং পড়ার সময়, আমরা nextInt()
পদ্ধতিটি এর সাথে প্রতিস্থাপন করেছি nextLine()
।
2. String
মেমরিতে অ্যারে
এবং আরও একটি দরকারী তথ্য। আসুন 3টি ছবি বিবেচনা করি:
ছবি 1. কিভাবে একটি String
বস্তু মেমরিতে সাজানো হয়:
এই ছবিটি পূর্ববর্তী পাঠ থেকে নেওয়া হয়েছে.
দয়া করে মনে রাখবেন যে স্ট্রিংয়ের পাঠ্যটি সরাসরি ভেরিয়েবলে সংরক্ষণ করা হয় না: এটির জন্য মেমরির একটি পৃথক ব্লক বরাদ্দ করা হয়েছে। একটি String
পরিবর্তনশীল একটি বস্তুর ঠিকানা (রেফারেন্স) সংরক্ষণ করে যা পাঠ্য সংরক্ষণ করে।
ছবি 2. কিভাবে একটি পূর্ণসংখ্যা অ্যারে মেমরিতে সাজানো হয়:
এই ছবিটাও পরিচিত।
ছবি 3. কিভাবে একটি স্ট্রিং অ্যারে মেমরিতে সাজানো হয়:
বাম দিকে আমরা একটি অ্যারে ভেরিয়েবল দেখতে পাচ্ছি যার ধরন হল String[]
(এটি একটি অ্যারে অবজেক্টের ঠিকানা সংরক্ষণ করে)।
মাঝখানে, আমরা String
অ্যারে অবজেক্ট নিজেই আছে.
এবং ডানদিকে স্ট্রিং অবজেক্ট রয়েছে যা কিছু পাঠ্য সংরক্ষণ করে।
অ্যারের সেলগুলি String
স্ট্রিংগুলিকে নিজেরাই সংরক্ষণ করে না (স্ট্রিং অবজেক্টের পাঠ্য)। পরিবর্তে, তারা তাদের ঠিকানা (তাদের রেফারেন্স) সংরক্ষণ করে। একইভাবে String
ভেরিয়েবলগুলি স্ট্রিং অবজেক্টের ঠিকানাগুলি সংরক্ষণ করে (যেখানে পাঠ্যটি সংরক্ষণ করা হয়)।
আপনি যখন অ্যারে কোষ তুলনা করেন তখন এটি বিবেচনা করুন :
|
10টি স্ট্রিংয়ের একটি অ্যারে তৈরি করুন অ্যারেতে মান রাখুন true (রেফারেন্সগুলি সমান) false (রেফারেন্সগুলি সমান নয়)true (স্ট্রিংগুলি সমান) true (স্ট্রিংগুলি এখনও সমান) |
3. জাভাতে ফাস্ট অ্যারে ইনিশিয়ালাইজেশন
অ্যারেগুলি খুব দরকারী, তাই জাভা এর নির্মাতারা তাদের সাথে কাজ করা যতটা সম্ভব সুবিধাজনক করার চেষ্টা করেছেন।
তারা প্রথমে যে কাজটি করেছিল তা হল অ্যারের প্রারম্ভিকতাকে সহজ করা, যে প্রক্রিয়াটির মাধ্যমে আপনি একটি অ্যারের প্রাথমিক মান সরবরাহ করেন।
সর্বোপরি, কোথাও থেকে পড়া ডেটা ছাড়াও, একটি প্রোগ্রামের কাজ করার জন্য প্রায়শই নিজস্ব অভ্যন্তরীণ ডেটার প্রয়োজন হয়। উদাহরণস্বরূপ, ধরুন আমাদের একটি অ্যারেতে প্রতি মাসের দৈর্ঘ্য সংরক্ষণ করতে হবে। এই কোডটি দেখতে কেমন হতে পারে:
int[] months = new int[12];
months[0] = 31; // January
months[1] = 28; // February
months[2] = 31; // March
months[3] = 30; // April
months[4] = 31; // May
months[5] = 30; // June
months[6] = 31; // July
months[7] = 31; // August
months[8] = 30; // September
months[9] = 31; // October
months[10] = 30; // November
months[11] = 31; // December
কিন্তু জাভা এর নির্মাতাদের ধন্যবাদ, এটি আরও সংক্ষিপ্তভাবে লেখার একটি উপায় রয়েছে:
// Lengths of months of the year
int[] months = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
আপনি সহজভাবে কমা দ্বারা পৃথক করা অ্যারের সমস্ত মান তালিকা করতে পারেন!
সুবিধাজনক, ডান? কিন্তু এখানেই শেষ নয়.
যেহেতু এটি ঘটে, কম্পাইলার অ্যারের মানগুলির প্রকারের উপর ভিত্তি করে ধারক (অ্যারে অবজেক্ট) এর ধরন নির্ধারণ করতে পারে। এবং অ্যারের দৈর্ঘ্য নির্ধারণ করতে, কোঁকড়া ধনুর্বন্ধনীতে লেখা উপাদানের সংখ্যা গণনা করা তুচ্ছ।
তার মানে এই কোডটি আরও ছোট করে লেখা যেতে পারে:
// Lengths of months of the year
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
সৌন্দর্যের জিনিস, তাই না? 🙂
একে "দ্রুত অ্যারে ইনিশিয়ালাইজেশন" বলা হয়। যাইহোক, এটি অন্য ধরনের জন্য কাজ করে int
...
// Names of months of the year
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November ", "December"};