【发布时间】:2018-11-14 02:46:36
【问题描述】:
我需要构造并返回一个新的 Q,其中包含该 Q 的后“一半”。
我正在尝试完成的示例
- 拆分前的这个Q:1、3、4、8、14
- 拆分后的这个Q:1, 3
- 新问:4、8、14
- 拆分前的这个Q:1、3、4、8
- 拆分后的这个Q:1, 3
- 新问:4、8
类 Q 使用 Java 类库中的类 LinkedList 实现了一个队列 ADT。下面是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;
}
【问题讨论】:
-
我的问题是我需要返回一个 Q 对象,但我有一个 LinkedList。 在
Q中创建一个修改 LinkedList 的方法 -
什么是
capacity,它是如何在两个Q之间“分裂”的?
标签: java oop linked-list