【问题标题】:Java NullPointerException error queueJava NullPointerException 错误队列
【发布时间】:2014-03-06 23:48:00
【问题描述】:

当我在主方法中出列时,我不断收到空指针错误。我知道 Enqueue(push) 方法可以正常工作,但是如果我从相反的方法弹出,它只会在我弹出时不会给我一个错误。例如,如果我从一开始就推入 3 个值,我只能从后面弹出 1 个。如果我尝试从前面弹出它会给我一个错误。反之亦然(我希望我说清楚了)。那么这是使用双端队列出队的正确方法吗?这是从前面出队,另一个类似的方法是从后面。我错过了什么吗?

public T dequeueBegin()
{
     T number = begin.getValue();
     if(isEmpty())
        throw new RuntimeException("Can't dequeue");

     if(begin.getNext() == null)
         end = null;

     begin = begin.getNext();
     size--;
     return number; 
}

【问题讨论】:

  • front是什么,begin是什么,为什么都用?
  • @FlorentBayle 不是故意的,它们都是从我的程序开始的
  • @muhamadto 它的类型 T

标签: java null


【解决方案1】:

如果您要从列表集合的前端和后端删除,您可能需要考虑使用 LinkedList 而不是 ArrayList就像你正在努力实现的那样。 LinkedList 常用于实现 Queue 功能。

在此处查看 Javadoc

http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

addFirst、addLast、removeFirst、removeLast 等方法看起来很适合您。

【讨论】:

  • 我使用的是链接结构
猜你喜欢
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 2014-03-28
  • 1970-01-01
相关资源
最近更新 更多