Java: метод компенсации Lifo
Есть ли простое решение для реализации решения LIFO на основе Java?
Например, у меня есть следующее
In (50 150 200) Out (все после всех входов) (250,80)
Результаты должны быть примерно такими:
Начальный - Финальный 200 - 200 200 - 50 150 - 80 150 - 20 50 - 50 (Осталось)
Спасибо заранее,
Я думал о LinkedList:
if (outList.getFirst()>inList.getLast()){
def pieces = outList.getFirst()-inList.getLast()
valoreFinal.add(inList.getLast())
valoreInitial.add(inList.getLast())
iList.removeLast()
}
И так далее, но я не думаю, что это оптимальное решение.
Спасибо заранее,
1 ответ
Объект Deque подразумевается как стек типа LIFO.
https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html
Он поддерживает как LIFO, так и FIFO реализации.
LIFO будет реализован с помощью методов addFirst(x) и removeFirst().