public class SpecialQueue extends java.util.ArrayDeque { public SpecialQueue() { this(10); } public SpecialQueue(int capacity) { super(capacity); } public SpecialQueue join(SpecialQueue other) { SpecialQueue result = new SpecialQueue((this.size() + other.size()) * 2); ELEMENT[] data = (ELEMENT[]) this.toArray(); for (ELEMENT e : data) { result.add(e); } data = (ELEMENT[]) other.toArray(); for (ELEMENT e : data) { result.add(e); } return result; } }