Что такое Java-эквивалент c++ deque?
В C++ все, что мне нужно было сделать, это
#include <queue> -> including
queue<int> a; -> defining
a.push(1); ->using
Но в java я обнаружил, что очень трудно использовать простой deque что же мне делать?..? точнее, Как я должен кодировать, чтобы просто сделать те же шаги как я делал в C++; включая, определяя, используя.
Даже более конкретно, Я хочу сделать дек, чтобы я мог добавьте любое целое число в деке спереди или сзади. и выведите целые числа в этой деке по размеру деки
3 ответа:
Java имеет оба типаQueue иDeque , А LinkedList , среди прочих, может действовать как один из них:
import java.util.*; Deque<Integer> q = new LinkedList<Integer>(); q.push(1);
Текущие ответы предполагают, что java-это java.утиль.LinkedList - это Java-перевод C++ ' S std::deque. Хотя
LinkedList
имеет интерфейс, который примерно эквивалентен интерфейсуstd::deque
, он не дает гарантий сложности, которые даетstd::deque
. В частности,std::deque
гарантируетO(1)
поиск по индексу (произвольный доступ), в то время какLinkedList
имеетO(n)
поиск. В этом смысле (смысле, в котором опытный пользователь C++ рассматриваетstd::deque
), JavaLinkedList
совсем не похож наstd::deque
(хотя это очень похоже наstd::list
). этот поток дает лучший ответ на вопрос "Что такое Java-эквивалент c++ deque". Подводя итог, можно сказать, что в стандартной библиотеке Java нет эквивалента.
Посмотрите на java.утиль.LinkedList .
LinkedList<Integer> linkedList = new LinkedList<Integer>(); linkedList.add(5); linkedList.addFirst(2); // add to front, equivalent to push() linkedList.addLast(3); // add to end, equivalent to add()