In Java Array-Groessen sind immer fest, aber es gibt einen Weg, auf dem Sie die Groesse des Arrays zur Laufzeit dynamisch erhoehen koennen.
Dies ist der am meisten "verwendete" und bevorzugte Weg, es zu tun-
int temp[]=new int[stck.length+1];
for(int i=0;i
``
In dem obigen Code initialisieren wir ein neues temp[] Array und verwenden dann eine For-Schleife, um die Inhalte von temp mit den Inhalten des Original-Arrays d.h. stck[] zu initialisieren. Und dann kopieren wir es wieder zurueck zum Original, um uns ein neues Array mit neuer Groesse zu geben.
Zweifellos erzeugt dies einen CPU-Overhead, da das Array mehrmals mittels einer Schleife neu initialisiert wird. Aber Sie koennen es immer noch in Ihrem Code verwenden und implementieren. Fuer die beste Praxis verwenden Sie anstatt des Arrays "Linked List", wenn Sie die Daten dynamisch im Speicher mit variabler Laenge speichern moechten.
Hier ist ein Echtzeitbeispiel basierend auf Dynamischen Stacks, um die ARRAY-GROESSE zur Laufzeit zu ERHOEHEN.
Dateiname: DStack.java
public class DStack {
private int stck[];
int tos;
void Init_Stck(int groesse) {
stck=new int[groesse];
tos=-1;
}
int Change_Stck(int groesse){
return stck[groesse];
}
public void push(int element){
if(tos==stck.length-1){
int temp[]=new int[stck.length+1];
for(int i=0;i
`
Dateiname: Exec.java
(mit der Hauptklasse)
import java.util.*;
public class Exec {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int option,element,i=1;
DStack obj=new DStack();
obj.Init_Stck(1);
do{
System.out.println();
System.out.println("--MENUE--");
System.out.println("1. Wert in den Stack einfuegen");
System.out.println("2. Wert aus dem Stack nehmen");
System.out.println("3. Stack anzeigen");
System.out.println("4. Beenden");
option=in.nextInt();
switch(option){
case 1:
System.out.println("Geben Sie den Wert ein, der eingefuegt werden soll");
element=in.nextInt();
obj.push(element);
break;
case 2:
System.out.println("Herausgenommenes Element: "+obj.pop());
obj.Change_Stck(obj.tos);
break;
case 3:
System.out.println("Anzeigen...");
obj.display();
break;
case 4:
System.out.println("Beenden...");
i=0;
break;
default:
System.out.println("Geben Sie einen gueltigen Wert ein");
}
}while(i==1);
}
}
Hoffentlich loest das Ihr Anliegen.
` ``
0 Stimmen
Ich habe das Format der Frage verbessert, du kannst nur den Titel ändern, wenn du möchtest, sei einfach beschreibend. und willkommen bei Stackoverflow! :D