J
JavaNewbie69
Gast
Hallo, Leute!
Folgende Situation:
Ich habe ein Array s dessen Größe beim Programmstart durch den User festgelegt wird.
Dann können Werte hereingeschrieben und auch wieder abgerufen werden.
Wenn das Array nun voll ist, soll ein doppelt so großes Array angelegt werden und die Werte des alten Arrays in das neue Array kopiert werden.
Das klappt auch alles wunderbar.
Hier der Code:
An der markierten Stelle (Hier weiß ich nicht mehr weiter) soll die Variable s nun eine Referenz auf die Variable s2 sein,
sodass die Methoden push und pop jetzt das neue Array bearbeiten.
Aber wie mache ich das in JAVA?
Pointer?
Gruß
Folgende Situation:
Ich habe ein Array s dessen Größe beim Programmstart durch den User festgelegt wird.
Dann können Werte hereingeschrieben und auch wieder abgerufen werden.
Wenn das Array nun voll ist, soll ein doppelt so großes Array angelegt werden und die Werte des alten Arrays in das neue Array kopiert werden.
Das klappt auch alles wunderbar.
Hier der Code:
Java:
package paket;
class BetterStack {
private int[] s;
private int[] s2;
private int counter;
private boolean underflow, overflow;
public int getCounter() {
return counter;
}
public BetterStack(int size) {
s = new int[size];
counter = 0;
}
public void push(int x) {
overflow = (counter >= s.length);
if (!overflow) {
s[counter] = x;
counter++;
} else {
s2 = new int[counter*2];
System.arraycopy(s, 0, s2, 0, counter);
// ------------------------------
// Hier weiß ich nicht mehr weiter
// ------------------------------
}
}
public int pop() {
underflow = (counter == 0);
if (!underflow) {
counter--;
return s[counter];
} else {
throw new RuntimeException("Stack underflow");
}
}
}
An der markierten Stelle (Hier weiß ich nicht mehr weiter) soll die Variable s nun eine Referenz auf die Variable s2 sein,
sodass die Methoden push und pop jetzt das neue Array bearbeiten.
Aber wie mache ich das in JAVA?
Pointer?
Gruß