Di Java Array Sizes selalu dari Fixed Length Tetapi ada cara di mana Anda dapat secara dinamis meningkatkan Ukuran Array saat Runtime Itu Sendiri
Ini adalah cara yang paling "digunakan" dan juga disukai untuk melakukannya-
int temp[]=new int[stck.length+1];
for(int i=0;i<stck.length;i++)temp[i]=stck[i];
stck=temp;
Dalam kode di atas kita menginisialisasi array temp [] baru, dan selanjutnya menggunakan loop for untuk menginisialisasi konten temp dengan konten array asli yaitu. stck []. Dan kemudian menyalinnya kembali ke aslinya, memberi kita array baru SIZE.
Tidak diragukan lagi ini menghasilkan Overhead CPU karena menginisialisasi ulang array menggunakan for loop berulang kali. Tapi Anda masih bisa menggunakan dan menerapkannya di kode Anda. Untuk praktik terbaik, gunakan "Daftar Tertaut" daripada Array, jika Anda ingin data disimpan secara dinamis dalam memori, dengan panjang variabel.
Berikut adalah Contoh Real-Time berdasarkan Dynamic Stacks untuk MENINGKATKAN UKURAN ARRAY pada Run-Time
Nama file: DStack.java
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();
}
}
File-name: Exec.java
(dengan kelas utama)
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);
}
}
Semoga ini menyelesaikan pertanyaan Anda.