你能帮我创建一个将返回整个链表和队列数组的方法吗?



到目前为止,这是我为我的队列使用的方法,

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,因为它比连接到字符串的末尾更有效,特别是对于大量连接。

相关内容

  • 没有找到相关文章

最新更新