永发信息网

救命,求队列复制,增删更高效率

答案:2  悬赏:60  手机版
解决时间 2021-03-13 20:38
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-03-13 14:30
一个接口,一个实现类,主要功能是创建并返回一个新队列,新队列有增删元素,原队列不变。源码贴在下面,假定类里的各个方法调用次数差不多。接口不能改动,类只要实现接口,实现功能,可以随意增加修改属性方法什么的。
速度上一定要有提高,头大,实在想不到什么折了。
public interface Tinterface {
public Tinterface enqueue(E e);
public Tinterface dequeue();
public E peek();
public int size();
}
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
public class Impl implements Tinterface {
private ArrayList queue;
public Impl(){
queue = new ArrayList();
}
public Impl(ArrayList queue){
this.queue = queue;
}
public Tinterface enqueue(E e){
if(e == null){
throw new IllegalArgumentException();
}
ArrayList clone = new ArrayList(queue) ;
clone.add(e);
return new Impl(clone);
}
public Tinterface dequeue(){
if(queue.isEmpty()){
throw new NoSuchElementException();
}
ArrayList clone = new ArrayList(queue);
clone.remove(0);
return new Impl(clone);
}
public E peek(){
if(queue.isEmpty()){
throw new NoSuchElementException();
}
return queue.get(0);
}
public int size(){
return queue.size();
}
}

重点是要copy一个新队列增删元素,返回这个新队列,最大消耗是这个复制过程。
最佳答案
  • 五星知识达人网友:一叶十三刺
  • 2021-03-13 15:52
既然是队列,那么用LinkedList效率要高于ArrayList。 当然用Queue更好
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-03-13 16:01
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯