জাভা অ্যারে আকারগুলি সর্বদা স্থির দৈর্ঘ্যের হয় তবে আপনি এমনভাবে উপায় চালাতে পারেন যা রানটাইম নিজে নিজে অ্যারের আকার বাড়িয়ে তুলতে পারেন
এটি সর্বাধিক "ব্যবহৃত" হওয়ার পাশাপাশি এটি করার পছন্দসই উপায়-
int temp[]=new int[stck.length+1];
for(int i=0;i<stck.length;i++)temp[i]=stck[i];
stck=temp;
উপরের কোডে আমরা একটি নতুন টেম্প [] অ্যারে আরম্ভ করছি এবং আরও লুপের জন্য মূল অ্যারের সামগ্রীগুলি সহ টেম্পের বিষয়বস্তু সূচনা করার জন্য ব্যবহার করছি। stck []। এবং তারপরে আবার এটি আবার আসলটিকে অনুলিপি করে আমাদেরকে নতুন সাইজের একটি নতুন অ্যারে প্রদান করে।
সন্দেহ নেই যে এটি বারবার লুপের জন্য ব্যবহার করে অ্যারেটিকে পুনরায় পুনরায় তৈরি করার কারণে একটি সিপিইউ ওভারহেড তৈরি করে। তবে আপনি এখনও এটি আপনার কোডটিতে ব্যবহার এবং প্রয়োগ করতে পারেন। সেরা অনুশীলনের জন্য অ্যারের পরিবর্তে "লিঙ্কড লিস্ট" ব্যবহার করুন, আপনি যদি পরিবর্তনশীল দৈর্ঘ্যের মেমরিতে ডেটা গতিশীলভাবে সংরক্ষণ করতে চান।
রান-টাইমে ক্রমবর্ধমান এয়ার সাইজে ডায়নামিক স্ট্যাকের উপর ভিত্তি করে এখানে একটি রিয়েল-টাইম উদাহরণ রয়েছে
ফাইলের নাম: ডিএসট্যাক.জভা
public class DStack {
private int stck[];
int tos;
void Init_Stck(int size) {
stck=new int[size];
tos=-1;
}
int Change_Stck(int size){
return stck[size];
}
public void push(int item){
if(tos==stck.length-1){
int temp[]=new int[stck.length+1];
for(int i=0;i<stck.length;i++)temp[i]=stck[i];
stck=temp;
stck[++tos]=item;
}
else
stck[++tos]=item;
}
public int pop(){
if(tos<0){
System.out.println("Stack Underflow");
return 0;
}
else return stck[tos--];
}
public void display(){
for(int x=0;x<stck.length;x++){
System.out.print(stck[x]+" ");
}
System.out.println();
}
}
ফাইলের নাম: এক্সিকিউজ.জাভা
(মূল শ্রেণীর সাথে)
import java.util.*;
public class Exec {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int option,item,i=1;
DStack obj=new DStack();
obj.Init_Stck(1);
do{
System.out.println();
System.out.println("--MENU--");
System.out.println("1. Push a Value in The Stack");
System.out.println("2. Pop a Value from the Stack");
System.out.println("3. Display Stack");
System.out.println("4. Exit");
option=in.nextInt();
switch(option){
case 1:
System.out.println("Enter the Value to be Pushed");
item=in.nextInt();
obj.push(item);
break;
case 2:
System.out.println("Popped Item: "+obj.pop());
obj.Change_Stck(obj.tos);
break;
case 3:
System.out.println("Displaying...");
obj.display();
break;
case 4:
System.out.println("Exiting...");
i=0;
break;
default:
System.out.println("Enter a Valid Value");
}
}while(i==1);
}
}
আশা করি এটি আপনার প্রশ্নের সমাধান করে।