Что такое Java-эквивалент c++ deque?


В C++ все, что мне нужно было сделать, это

#include <queue> -> including
queue<int> a; -> defining
a.push(1); ->using

Но в java я обнаружил, что очень трудно использовать простой deque что же мне делать?..? точнее, Как я должен кодировать, чтобы просто сделать те же шаги как я делал в C++; включая, определяя, используя.

Даже более конкретно, Я хочу сделать дек, чтобы я мог добавьте любое целое число в деке спереди или сзади. и выведите целые числа в этой деке по размеру деки

3 2

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), Java LinkedList совсем не похож на 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()