Мне нужно построить и вернуть новый Q, который содержит вторую «половину» этого Q.
Примеры того, чего я пытаюсь достичь
- это Q до разделения: 1, 3, 4, 8, 14
- это Q после разделения: 1, 3
- новый Q: 4, 8, 14
- это Q перед разделением: 1, 3, 4, 8
- это Q после разделения: 1, 3
- новый Q: 4, 8
класс Q реализует ADT очереди, используя класс LinkedList из библиотеки классов Java. Класс Q ниже
import java.util.LinkedList;
public class Q {
// all Q objects have the same default capacity...
private final static int DFLT_CAPACITY = 4;
// every Q object has the following instance variables...
private LinkedList<Object> ll;
private int capacity;
/**
* Constructs an empty Q having DFLT_CAPACITY.
*/
public Q() {
this(DFLT_CAPACITY);
}
/**
* Constructs an empty Q having client supplied capacity.
*
* @param capacity switched to DFLT_CAPACITY if less than one
*/
public Q(int c) {
capacity = c < 1 ? DFLT_CAPACITY : c;
ll = new LinkedList<Object>();
}
Моя проблема в том, что мне нужно вернуть объект Q, но у меня есть LinkedList. Я знаю, что эта попытка совершенно ошибочна, но я застрял на некоторое время.
public Q split() {
int split = ll.size() / 2;
for (int i = 0; i < split; i++) {
ll.remove(i);
}
Q newQ = (Q) ll.clone();
return newQ;
}