Это мой код:Как перетасовать deque?
import java.util.ArrayDeque;
import java.util.Collections;
import java.util.Deque;
import java.util.List;
public class ArrayDequeDemo {
public static void main(String[] args) {
// create an empty array deque with an initial capacity
Deque<Integer> deque = new ArrayDeque<Integer>(8);
// use add() method to add elements in the deque
deque.add(15);
deque.add(30);
deque.add(20);
deque.add(18);
// let us print all the elements available in deque
for (Integer number : deque) {
System.out.println("Number = " + number);
}
//Collections.shuffle((List<?>) deque);
// getFirst() will retrieve element at first(head) position
int retval = deque.getFirst();
System.out.println("Retrieved Element is = " + retval);
}
}
Я знаю, как тасовать List
, но как я могу использовать Collections
перетасовать Deque? Пожалуйста, ответьте кодом, поскольку я не полностью использую термины/теории Java, я все еще участвую.
Спасибо! Я заберу это как ответ :) Быстрый вопрос, читая другие ответы, я вижу это: 'Обратите внимание, что Deque - это только интерфейс, чтобы Shuffle использовал класс, который также реализует List, тогда вы можете использовать Collections.shuffle (List)' Is This что вы сделали выше? – Ryan
@ Ryan - Точно. Если вам нужен один конкретный тип коллекции, который реализует как «Список», так и «Deque», вы можете использовать «LinkedList». Обратите внимание, что массивные массивы имеют O (1) время доступа к случайным элементам, а 'LinkedList' - O (n). (Перетасовка «ArrayList» выполняется быстрее, чем перетасовка «LinkedList».) Однако для прямой итерации или для повторных операций в начале и/или конце «LinkedList» имеет такую же хорошую (а иногда и лучшую) производительность по сравнению с массивом, основанные на коллекции. –
Еще раз спасибо, хорошо отдохните! – Ryan