Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
15.02.2025
Размер:
1 Кб
Скачать
import java.util.ArrayList;

public class MyStack implements Cloneable {
    private ArrayList<Object> stack;

    public MyStack() {
        stack = new ArrayList<>();
    }

    public boolean isEmpty() {
        return stack.isEmpty();
    }

    public int getSize() {
        return stack.size();
    }

    public Object peek() {
        if (isEmpty()) {
            return null;
        }
        return stack.get(stack.size() - 1);
    }

    public Object pop() {
        if (isEmpty()) {
            return null;
        }
        return stack.remove(stack.size() - 1);
    }

    public void push(Object o) {
        stack.add(o);
    }

    @Override
    protected Object clone() {
        try {
            MyStack cloned = (MyStack) super.clone();
            cloned.stack = new ArrayList<>();
            for (Object item : this.stack) {
                if (item instanceof Cloneable) {
                    cloned.stack.add(((Cloneable) item).getClass()
                            .getMethod("clone")
                            .invoke(item));
                } else {
                    throw new CloneNotSupportedException("объект не поддерживает: " + item);
                }
            }
            return cloned;
        } catch (Exception e) {
            return null;
        }
    }
}
Соседние файлы в папке ПР-10