কম্পিউটার টিউটোরিয়াল

জাভা অ্যারেলিস্ট মাস্টারিং:দক্ষ ডেটা পরিচালনার জন্য একটি ব্যাপক গাইড

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

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

এই নিবন্ধে, আমরা জাভাতে একটি ArrayList প্রিন্ট করার শীর্ষ তিনটি উপায়ের দিকে নজর দেব, যে দুটি ধরনের ArrayList আমরা উপরে আলোচনা করেছি। আর কোনো ঝামেলা ছাড়াই, শুরু করা যাক!

জাভা অ্যারেলিস্ট মুদ্রণ করুন:তিনটি উপায়

উপরে উল্লিখিত হিসাবে, অ্যারেলিস্টের দুটি প্রকার রয়েছে:একটিতে আদিম, সাধারণ ডেটা টাইপ (যেমন পূর্ণসংখ্যা এবং ফ্লোট)যুক্ত বস্তু রয়েছে এবং অন্যটিতে কাস্টম ক্লাসের মাধ্যমে ইনস্ট্যান্টিয়েট করা বস্তু রয়েছে। এই দুই ধরনের ArrayList প্রিন্ট করার বিভিন্ন উপায় আছে।

জাভাতে একটি ArrayList প্রিন্ট করার জন্য এই তিনটি উপায় হল:

  • লুপের জন্য একটি ব্যবহার করা হচ্ছে
  • একটি println কমান্ড ব্যবহার করে
  • toString() ব্যবহার করে বাস্তবায়ন

পদ্ধতি 1:লুপের জন্য a ব্যবহার করা

লুপের জন্য A হল একটি তালিকা বা অ্যারে জুড়ে পুনরাবৃত্তি করার সবচেয়ে সহজ উপায়। এই পদ্ধতিটি সাধারণ অ্যারে এবং অ্যারেলিস্টগুলির সাথে একইভাবে ভাল কাজ করে, কারণ সমস্ত আইটেমের মাধ্যমে একের পর এক পুনরাবৃত্তি করা আপনাকে সেই অনুযায়ী তাদের প্রতিটি পরিচালনা করতে দেয়।

এই পদ্ধতি আপনাকে প্রতিটি উপাদানের জন্য নির্দিষ্ট বাস্তবায়ন সংজ্ঞায়িত করতে সাহায্য করে। নিচে a for loop এর সিনট্যাক্স দেওয়া হল:

for (int i=0; i<arr.size(); i++) {
 // Assuming arr is an ArrayList object
 int current = arr.get(i);
 // Do something with the current element here
}

এখন চলুন কিছু সাধারণ উপায় দেখে নেওয়া যাক যেখানে একটি ফর লুপ ব্যবহার করে বস্তুর বিন্যাসের মধ্য দিয়ে অতিক্রম করা যেতে পারে:

লুপ উদাহরণের জন্য

আপনি সহজভাবে ArrayList এর সমস্ত উপাদান মুদ্রণ করতে for loop ব্যবহার করতে পারেন:

ArrayList<Integer> arr = new ArrayList<>();
arr.add(3);
arr.add(4);
arr.add(5);
arr.add(6);
for (int i=0; i<arr.size(); i++) {
 int curr = arr.get(i);
 System.out.println(curr);
}

এটিকে একটি স্তরে নিয়ে যাওয়ার জন্য, আপনি যেকোনো শর্তের উপর ভিত্তি করে প্রতিটি উপাদানের জন্য নির্দিষ্ট ক্ষেত্রে সংজ্ঞায়িত করতে পারেন:

ArrayList arr = new ArrayList<>();
arr.add(3);
arr.add(5l);
arr.add("Hello World!");
 for (int i=0; i<arr.size(); i++) {
 if (arr.get(i) instanceof Integer)
 System.out.println(arr.get(i) + " is a number");
 else if (arr.get(i) instanceof String)
 System.out.println(arr.get(i) + " is a string");
 else if (arr.get(i) instanceof Long)
 System.out.println(arr.get(i) + " is a long");
}

কখন এই পদ্ধতিটি ব্যবহার করবেন

যখন আপনার কাছে উপাদানগুলির একটি অপেক্ষাকৃত ছোট সেট থাকে এবং তাদের প্রকারগুলি খুব বেশি পরিবর্তিত হয় না তখন পরিস্থিতিগুলির জন্য লুপটি সবচেয়ে উপযুক্ত। আপনার যদি 20টি আইটেমের একটি তালিকা থাকে যা হয় পূর্ণসংখ্যা (int) বা স্ট্রিং, লুপের জন্য যেতে হবে। যদি আপনার কাছে 100 টিরও বেশি আইটেমের একটি তালিকা থাকে যা স্ট্রিং, int, বুলিয়ান বা অন্য কিছু হতে পারে, লুপের জন্য ব্যবহার করা খুব কষ্টকর হবে৷

পদ্ধতি 2:একটি println কমান্ড ব্যবহার করা

println আদিম ডেটা টাইপ ব্যবহার করে তৈরি ArrayLists এর ক্ষেত্রে কমান্ড সরাসরি ব্যবহার করা যেতে পারে। জাভাতে আদিম ডেটা প্রকারের মধ্যে রয়েছে স্ট্রিং, ইন্টিজার, ফ্লোট, লং, ডবল এবং বুলিয়ান। যদি একটি তালিকা এই ধরণের সাথে মেলে না এমন ডেটা নিয়ে গঠিত হয় তবে এই পদ্ধতিটি ব্যবহার করে এটি মুদ্রণ করা যাবে না।

এই পদ্ধতির সিনট্যাক্স সহজ:

System.out.println(arr);
// Assuming arr is an ArrayList object

এই পদ্ধতিটি কাজ করার কারণ হল যে সমস্ত আদিম ডেটা টাইপ সরাসরি স্ট্যান্ডার্ড আউটপুট ডিভাইসে প্রিন্ট করা যেতে পারে। এগুলিকে মুদ্রণযোগ্য বিন্যাসে পার্স করতে হবে না। অন্যান্য ডেটা, যেমন একটি কাস্টম ক্লাসের একটি উদাহরণে সংরক্ষিত, সরাসরি println কমান্ড দ্বারা পার্স করা যায় না, তাই এই পদ্ধতিটি এই ক্ষেত্রে কাজ করবে না৷

মুদ্রিত উদাহরণ

আপনি যদি একটি সাধারণ পূর্ণসংখ্যা ArrayList প্রিন্ট করার চেষ্টা করছেন, তাহলে আপনি এটি কীভাবে করবেন তা এখানে:

ArrayList<Integer> arr = new ArrayList<>();
arr.add(5);
arr.add(4);
arr.add(6);
System.out.println(arr);
# => [5, 4, 6]

আপনি যদি একটি ভিন্নধর্মী ArrayList মুদ্রণ করার চেষ্টা করছেন, এটিও কাজ করবে:

ArrayList<> arr = new ArrayList<>();
arr.add(7);
arr.add("Foo");
arr.add(12l);
System.out.println(arr);
# => [7, Foo, 12]

কখন এই পদ্ধতিটি ব্যবহার করবেন

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

উপরন্তু, যদি তালিকায় কোনো নন-প্রিমিটিভ ডেটা থাকে, তাহলে এর মান ডিভাইসে প্রিন্ট করা হবে না। পরিবর্তে, মেমরিতে এর অবস্থানের একটি পয়েন্টার প্রিন্ট করা হবে।

class Foo {
 int bar;
 public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, 34n2dsf@Foo];

পদ্ধতি 3:toString() পদ্ধতি প্রয়োগ করা

এই পদ্ধতিতে আগের পদ্ধতির ত্রুটি নেই। অ-আদিম বস্তুগুলি সরাসরি আউটপুটে প্রিন্ট করা যায় না কারণ কম্পাইলার জানে না কিভাবে সেগুলি প্রিন্ট করতে হয়। toString() মেথড আপনাকে কম্পাইলারকে বলতে দেয় কিভাবে একটি ক্লাসের বস্তু কমান্ড লাইনে প্রিন্ট করতে হয়।

শেষ উদাহরণ থেকে ক্লাস ফু নেওয়া যাক:

class Foo {
 int bar;
 public Foo(int bar){ this.bar = bar; };
}

এই মুদ্রণ-বান্ধব করতে, আপনাকে toString() ওভাররাইড করতে হবে এবং সংজ্ঞায়িত করতে হবে ক্লাস সংজ্ঞায় পদ্ধতি:

class Foo {
 int bar;
 public Foo(int bar){ this.bar = bar; };
 public String toString() {
 return "Bar: " + String.valueOf(bar);
 }
}

এখন আপনি যদি চেষ্টা করেন এবং Foo এর একটি উদাহরণ তৈরি করেন:

এবং এটি মুদ্রণ করুন:

আপনি আগে সংজ্ঞায়িত আউটপুট পাবেন:

সহজে এবং দ্রুত সব ধরনের অ্যারেলিস্ট প্রিন্ট করার জন্য এই সামান্য সমাধানটিকে println পদ্ধতির সাথে সংযুক্ত করা যেতে পারে।

toString() উদাহরণ

আসুন পদ্ধতি 2 থেকে শেষ উদাহরণটি নেওয়া যাক এবং এটিকে প্রিন্ট-বান্ধব করে তুলুন:

class Foo {
 int bar;
 public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, Foo@2a139a55];

শুধুমাত্র পরিবর্তন যা আপনাকে এখানে করতে হবে তা হল toString() যোগ করা Foo ক্লাসে সংজ্ঞা:

জাভা অ্যারেলিস্ট মাস্টারিং:দক্ষ ডেটা পরিচালনার জন্য একটি ব্যাপক গাইড

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

ভেনাস, রকবটের সফটওয়্যার ইঞ্জিনিয়ার

আপনার বুটক্যাম্প ম্যাচ

খুঁজুন
class Foo {
 int bar;
 public Foo(int bar){ this.bar = bar; };
 public String toString(){
 return "Value: " + String.valueOf(bar);
 }
}
Now, the println statement will give the desired output:
// # => [4, Value: 40]

কখন এই পদ্ধতিটি ব্যবহার করবেন

এই পদ্ধতিটি এমন পরিস্থিতিতে উপযুক্ত যেখানে আপনাকে ভিন্নধর্মী ArrayList, অথবা একটি কাস্টম শ্রেণী দ্বারা গঠিত একটি সমজাতীয় ArrayList প্রিন্ট করতে হবে। ক্লাসে একটি একক পদ্ধতির সংজ্ঞা আপনাকে একটি ফর লুপ ব্যবহার করে যে সমস্যার সম্মুখীন হতে হবে তা সংরক্ষণ করে।

যাইহোক, এই পদ্ধতি সহজ পরিস্থিতিতে overkill মত মনে হতে পারে. আপনার যদি উপাদানগুলির একটি ছোট তালিকা থাকে, তাহলে আপনি যুক্তিতে সহজ এবং সরলতার জন্য লুপ পদ্ধতিটি বিবেচনা করতে পারেন৷

উপসংহার

একটি জাভা অ্যারেলিস্ট মুদ্রণ করা একটি সহজ কাজ নয়। একটি ArrayList এর বিষয়বস্তু যত বেশি গতিশীল, স্ট্যান্ডার্ড আউটপুটে তালিকাটি মুদ্রণ করা তত বেশি কঠিন। println কমান্ড বেশিরভাগ ক্ষেত্রেই কভার করতে পারে, তবে আপনার একটি toString() প্রয়োজন হতে পারে কাজটি সম্পন্ন করতে ওভাররাইড করুন।

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


  1. পান্ডাসে মাল্টি ইনডেক্সে গ্রুপবাই কীভাবে করবেন?

  2. পাইথনে OpenCV ব্যবহার করে চিত্রের গাণিতিক ক্রিয়াকলাপ

  3. জ্যাঙ্গোতে মডেল রিভার্সন বাস্তবায়ন করা

  4. C++ এ প্রদত্ত প্রারম্ভিক অক্ষর থেকে দীর্ঘতম ধারাবাহিক পথের দৈর্ঘ্য খুঁজুন