Hallo.
Ich habe begonnen einen Stack zu implementieren, denn ich nun auch fertig geschrieben habe. Hier schon mal der Quelltext:
Nun wollte ich den Inhalt des Arrays in ein großeres Array kopieren, falls das Array voll sein sollte.
Dieses Programm bricht mit der Exception "Stack ist voll" ab. Dies soll aber nicht passieren, sondern die einzelnen Elemente sollen nun in ein großeres Array kopiert werden. Mir ist bekannt, dass ich eine Methode arraycopy() gibt, aber ich kann diese nicht einbauen. Kann mir da vielleicht einer helfen?
Wäre echt super. Vielen Dank.
Ich habe begonnen einen Stack zu implementieren, denn ich nun auch fertig geschrieben habe. Hier schon mal der Quelltext:
Code:
public class Stack {
public static final int CAPACITY = 1000;
// Default-Laenge des Arrays
private int capacity;
// verwendete Laenge des Arrays
private int[] S;
// Array S um Stack zu implementieren
private int top = -1;
// Position des obersten Elements im Stack
public Stack () {
this(CAPACITY);
}
public Stack (int cap) {
capacity = cap;
S = new int [capacity];
}
// nur Initialisierung des Stacks
public int size () {
return (top + 1);
}
// gibt Hoehe des Stacks aus
public boolean isEmpty () {
return (top < 0);
}
public void push (int element) throws StackException {
if (size() == capacity)
throw new StackException("Stack ist voll");
S[++top] = element;
}
public int top() throws StackException {
if (isEmpty())
throw new StackException("Stack ist leer");
return S[top];
}
public int pop () throws StackException{
if (isEmpty()) {
throw new StackException("Stack ist leer");
}
int element = S[top--];
return element;
}
}
Nun wollte ich den Inhalt des Arrays in ein großeres Array kopieren, falls das Array voll sein sollte.
Code:
public class StackTestDrive {
public static void main(String [] args) throws StackException {
Stack Test = new Stack(5);
Test.push(1);
Test.push(2);
Test.push(3);
Test.push(4);
Test.push(5);
System.out.println(Test.size());
System.out.println(Test.isEmpty());
Test.push(6);
}
}
Dieses Programm bricht mit der Exception "Stack ist voll" ab. Dies soll aber nicht passieren, sondern die einzelnen Elemente sollen nun in ein großeres Array kopiert werden. Mir ist bekannt, dass ich eine Methode arraycopy() gibt, aber ich kann diese nicht einbauen. Kann mir da vielleicht einer helfen?
Wäre echt super. Vielen Dank.