Структура Java для зворотної вставки

Чи існує датаструктура в Java, яка підтримує зворотну вкладку? Я хочу додати значення до структури даних. Я не знаю, скільки заздалегідь. Ці значення слід вставити в наступному рядку:

datastructure.insert(1); //datastructure is: {1}                 
datastructure.insert(4); //datastructure is: {4,1}       
datastructure.insert(9); //datastructure is: {9,4,1}

Остання вставлена ​​величина завжди повинна бути першою. Яка структура даних найкраще підходить?

1
+1 Не знаєте, чому так багато хто вважає Стек правильною відповіддю. Показує, що варто ставити питання, оскільки Стек не є гарною ідеєю. Подивись мою відповідь.
додано Автор Peter Lawrey, джерело
у вас є 2 набору геніальних колекцій та методи поштовху та попугації концепцій FIFO
додано Автор abhi, джерело
Спробуйте Deque, що дозволяє вставити нарешті, docs.oracle.com/javase/6/docs/api/java/util/…
додано Автор madhav-turangi, джерело

6 Відповіді

Найкращий спосіб - використовувати Deque не слід використовувати стек, якщо у вас немає дійсно старої версії Java. Стовп біт буде протилежним порядком, який вам потрібен.

Stack stack = new Stack();
stack.push(1);
stack.push(4);
stack.push(9);
System.out.println("stack: " + stack);
Deque deque = new ArrayDeque<>();
deque.addFirst(1);
deque.addFirst(4);
deque.addFirst(9);
System.out.println("deque: " + deque);

друкує

stack: [1, 4, 9]
deque: [9, 4, 1]
5
додано
Це те, що я насправді шукаю. Дякую.
додано Автор Irgendw Pointer, джерело

This is called a stack. See Stack, methods are push() and pop()

5
додано
стек буде виробляти [1, 4, 9] , побачити мою відповідь. У будь-якому випадку це клас спадщини.
додано Автор Peter Lawrey, джерело
Правда на обидва числа. Плюс, я не був певний ітераційний порядок значення.
додано Автор Delyan, джерело

Ви можете використовувати java.util.ArrayDeque замість Стек . З API Oracle Java :

Більш повний і послідовний набір операцій LIFO-стеки забезпечується інтерфейсом Deque та його реалізаціями, які слід використовувати для класу Stack . Наприклад:

Deque stack = new ArrayDeque();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);

Ви отримаєте такі значення: {4, 3, 2, 1}.

Клас java.util.ArrayDeque забезпечує всі операції (для ex push() і pop ()) структури даних LIFO

1
додано

you could use a LinkedList and add new Elements using addFirst() or a Stack

0
додано

Так, найпростіше, що ви можете зробити, це реалізувати Стек, натискати всі ваші елементи один за іншим, а потім висувати їх. Це слід за Last In First Out, який саме те, що ви хочете.

0
додано

Ми знаходимося у StackOverflow, і ви, мабуть, хочете використовувати стек;) http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html

0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників

android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.