জাভাতে ডায়নামিক অ্যারে কী?



জাভাতে গতিশীল অ্যারে হ'ল এক ধরণের অ্যারে যা স্বয়ংক্রিয় আকার পরিবর্তন করার জন্য বিশাল উন্নতি। অ্যারেগুলির একমাত্র সীমাবদ্ধতা হ'ল এটি একটি নির্দিষ্ট আকার।

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

স্নাতকোত্তর ডিগ্রি স্নাতকোত্তর

জাভাতে গতিশীল অ্যারের পরিচিতি

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





  • দ্রুত অনুসন্ধান । অ্যারেগুলির মতো একই, যখন কোনও নির্দিষ্ট সূচীতে উপাদানটি পুনরুদ্ধার করার সময় O (1) সময় নেয়।



  • পরিবর্তনশীল আকার । আমরা যতগুলি উপাদান চাই সন্নিবেশ করতে পারি এবং একটি গতিশীল অ্যারে সেই অনুযায়ী ধরে রাখতে প্রসারিত হবে।

  • ক্যাশে-বান্ধব । অ্যারেগুলির অনুরূপ, গতিশীল অ্যারেগুলি একে অপরের পাশে মেমরিতে রাখতে পারে, ফলে ক্যাশের দক্ষ ব্যবহার হয়।



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

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

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

নীচের চিত্রগুলি দেখায় যে অ্যারেগুলি রিয়েল-টাইমে কীভাবে কাজ করে এবং কীভাবে উপাদানগুলি সজ্জিত করা হয় তা চিত্রিত করে। এটিও দেখায় যে নির্দেশাবলী কীভাবে গড় ক্ষেত্রে এবং অ্যারে ফাংশনগুলির সবচেয়ে খারাপ অবস্থার জন্য পরিবর্তন হয়।

অ্যারে - জাভা - এডুরেকাতে গতিশীল অ্যারে

আকার বনাম ক্ষমতা

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

দ্বিগুণ সংযোজন

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

একটি উপাদান মুছে ফেলা হচ্ছে

একটি অ্যারের থেকে কোনও উপাদান মোছার সময়, ডিফল্ট 'অপসারণ ()' পদ্ধতিটি শেষ থেকে কোনও উপাদান সরিয়ে দেয় এবং স্বয়ংক্রিয়ভাবে শেষ সূচকে শূন্য সঞ্চয় করে। এটি সরানএট (i) পদ্ধতিতে যেখানে 'আমি' সূচক হয় সেটিকে কল করে নির্দিষ্ট সূচীতে উপাদানগুলিও মুছবে। অপসারণের (i) পদ্ধতিটি বাম দিকের সমস্ত ডান উপাদানকে প্রদত্ত সূচক থেকে স্থানান্তরিত করে।

একটি অ্যারের আকার পরিবর্তন করা হচ্ছে

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

নীচে এমন একটি প্রোগ্রামের উদাহরণ দেওয়া আছে যেখানে অ্যারের আকার পূর্ণ হয়ে যায় এবং নতুন উপাদানগুলি একটি নতুন দ্বিগুণ আকারের অ্যারেতে অনুলিপি করা হয়। উপাদানটি যা 'মহাভীর' নামে পরিচিত একটি স্ট্রিং উপাদান 3 মাপের ইতিমধ্যে পূর্ণ অ্যারে সংযোজন।

আমদানি java.util.ArrayList আমদানি java.util.Arrays আমদানি java.util. স্ক্যানার পাবলিক ক্লাস AddingItemsDynamically {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {স্ক্যানার sc = নতুন স্ক্যানার (System.in) System.out.println (' অ্যারে এর আকার লিখুন :: ') int মাপ = sc.nextInt () স্ট্রিং মাইআরাই [] = নতুন স্ট্রিং [আকার] System.out.println (' অ্যারের উপাদানগুলি প্রবেশ করুন (স্ট্রিংস :: :: ')) এর জন্য (int) i = 0 i

আউটপুট:

এটির সাথে আমরা জাভা নিবন্ধে ডায়নামিক অ্যারের শেষে এসেছি। আমি আশা করি আপনি গতিশীল অ্যারেগুলির সাথে কীভাবে কাজ করবেন তার একটি ধারণা পেয়েছেন।

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

বাছাই ফাংশন সি ++

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এটি 'জাভাতে গতিশীল অ্যারে' ব্লগের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।