在下面的代码中,我有两个链表liperm和litemp。我想先使用liperm的值初始化litemp,然后添加其他值。但它不起作用,因为它没有初始化它们。你能帮帮:Java不可变队列
public class ExamImmutableQueueImpl<E> implements ExamImmutableQueue<E> {
LinkedList<E> liperm = new LinkedList<E>();
LinkedList<E> litemp = new LinkedList<E>(liperm);
public ExamImmutableQueueImpl(LinkedList li){
System.out.println(li.toString());
}
public ExamImmutableQueueImpl(){}
@Override
public ExamImmutableQueue<E> enqueue(E e) {
System.out.println(litemp.toString());
litemp.add(e);
return new ExamImmutableQueueImpl<>(litemp);
}
public final void setQueue(E e){
liperm.add(e);
}
public void getQueue(){
System.out.println(litemp.toString());
}
}
的主要方法是:
public static void main(String args[]){
ExamImmutableQueueImpl<Integer> o1 = new ExamImmutableQueueImpl<Integer>();
ExamImmutableQueue<Integer> obj;
o1.setQueue(2);
o1.setQueue(1);
o1.setQueue(2);
o1.setQueue(3);
obj = o1.enqueue(6);
接口是:
public interface ExamImmutableQueue<E> {
public ExamImmutableQueue<E> enqueue(E e);}
我无法想象除了'[家庭作业]'这个用法吗?你什么时候会使用这样一个集合? –
我创建该构造函数只是为了在return语句中创建对象。 对于主类我创建了一个空的构造函数 –
所以你想有一个不可变的队列?因为这看起来不像一个。 '不工作...'你能否解释它应该如何工作? – UmNyobe