
Добавил:
nechitay03
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:JAVA ДЛЯ ПОТОКОВ ИВБО / ПР-9 / GenericStack
.java public class GenericStack<T> {
private T[] stack;
private int size;
private static final int INITIAL_CAPACITY = 10;
@SuppressWarnings("unchecked")
public GenericStack() {
stack = (T[]) new Object[INITIAL_CAPACITY];
size = 0;
}
public void push(T element) {
if (size == stack.length) {
resize();
}
stack[size++] = element;
}
public T pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
T element = stack[--size];
stack[size] = null; // Устранение возможной утечки памяти
return element;
}
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return stack[size - 1];
}
public boolean isEmpty() {
return size == 0;
}
public int size() {
return size;
}
@SuppressWarnings("unchecked")
private void resize() {
T[] newStack = (T[]) new Object[stack.length * 2];
System.arraycopy(stack, 0, newStack, 0, stack.length);
stack = newStack;
}
}
private T[] stack;
private int size;
private static final int INITIAL_CAPACITY = 10;
@SuppressWarnings("unchecked")
public GenericStack() {
stack = (T[]) new Object[INITIAL_CAPACITY];
size = 0;
}
public void push(T element) {
if (size == stack.length) {
resize();
}
stack[size++] = element;
}
public T pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
T element = stack[--size];
stack[size] = null; // Устранение возможной утечки памяти
return element;
}
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return stack[size - 1];
}
public boolean isEmpty() {
return size == 0;
}
public int size() {
return size;
}
@SuppressWarnings("unchecked")
private void resize() {
T[] newStack = (T[]) new Object[stack.length * 2];
System.arraycopy(stack, 0, newStack, 0, stack.length);
stack = newStack;
}
}
Соседние файлы в папке ПР-9