到目前为止,这是我为我的队列使用的方法,
public String rQueue()
{
for(int i = 0; i < queueName.length; i++)
return queueName[i];
return
" ";
}
这里的问题是永远不会到达i++
,因为返回了queueName[i]
,当我使用此方法时,只返回第一个,我可以看到原因。如何修复它,以便我可以返回队列的全部内容。
我也对链表感到困惑,我有一个Object()
的链表.我只想为每个链接的每个实例返回Object.getMethod();
。这就是我所拥有的。我能想到的唯一方法是使用另一个循环并查看每个点,但我不知道如何返回这样的东西。
public String displayLink()
{
Link current = first;
while(current != null)
{
current.displayMethod();
current = current.next;
}
}
我真的更卡在链表上,队列只是一个技术问题。
如果你想返回一个串联,你可以做如下的事情:
public String rQueue() {
String r = "";
for(int i = 0; i < queueName.length; i++) {
if (i != 0) {
r += ", ";
}
r += queueName[i];
}
return r;
}
对于链表,您可以返回集合。如果 displayMethod 返回字符串,您可以执行以下操作:
public Collection<String> displayLink() {
Collection<String> result = new List<String>();
Link current = first;
while(current != null) {
result.add(current.displayMethod());
current = current.next;
}
return result;
}
第一部分,
public String[] qQueue { return queueName; } // or defensively copy, if you prefer
然后,您将数组作为队列内容,如果这就是它适合其余代码的方式。
第二部分对我来说看起来不错。
你对链表所做的实际上是遍历它的唯一方法(假设它是一个简单的链表,从一个节点链接到下一个节点(。这也是为什么从链表中检索元素是 O(n( 操作的原因,因为您必须遍历列表才能找到要查找的对象。
现在就返回值而言,您可以将它们附加到字符串中并最终返回此字符串。这样的东西会起作用:
public String rQueue() {
StringBuffer sb = new StringBuffer();
for(int i = 0; i < queueName.length; i++)
sb = sb.append(queueName[i]);
return sb.toString();
}
请注意,我在上面的代码中使用了 StringBuffer,因为它比连接到字符串的末尾更有效,特别是对于大量连接。