/
EugenyCh7
/
JavaAndScalaLessons
Обзор
Документация
Войти
/
EugenyCh7
/
JavaAndScalaLessons
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
JavaTest/src/ch6/ex2/part1/Stack.java
54 строки
1 KB
Eugeny Chekmarev
IDEA update
15 июн 2021, 21:11
15 июн 2021, 21:11
47fadf9
Код
Авторство
О чём код?
package ch6.ex2.part1; public class Stack<T> { private T[] array; private int size; private int capacity; @SuppressWarnings("unchecked") public Stack() { capacity = 1; size = 0; array = (T[]) new Object[capacity]; } @SuppressWarnings("unchecked") private void increase() { int newCapacity = capacity << 1; T[] newArray = (T[]) new Object[newCapacity]; if (size >= 0) System.arraycopy(array, 0, newArray, 0, size); array = newArray; capacity = newCapacity; } private boolean needToIncrease() { return size == capacity; } public void push(T element) { if (needToIncrease()) increase(); array[size] = element; ++size; } public T pop() { if (size == 0) return null; T element = array[size - 1]; --size; return element; } public int getSize() { return size; } public int getCapacity() { return capacity; } public boolean isEmpty() { return size == 0; } }