Я думаю, что в Java у вас нет выбора, кроме как использовать конкретный тип или хранить две ссылки на один и тот же объект, один тип как List, а другой как Dequeue.
List<T> list;
Dequeue<T> queue;
/** Construct a new instance of SomeClass */
private SomeClass() {
LinkedList<T> tmp=new LinkedList<T>();
list=tmp;
queue=tmp;
}
Не говорю Iособенно вот так.