双链表中的hasPrevious()方法

时间:2014-02-25 03:40:23

标签: java iterator

对于类我正在使用迭代器创建一个双向链表。我们刚刚开始这样的东西,所以我的经验只有几个星期。

当创建一个方法来检查Java中的双向链表是否在光标后面的位置有一个元素时,使用以下代码是否合适?

 public boolean hasPrevious() {
    if(cursor.prev != null){return true; }
    return false;

我很想知道,因为我的教授告诉我重新考虑这种方法,但我真的不能想到还有什么地方可以用它。他可能正在寻找与迭代器或双重链接列表有关的东西吗?

编辑:是的,我的光标是迭代的一部分。它应该在代码中的两个元素之间。

4 个答案:

答案 0 :(得分:0)

也许他想让你稍微简化一下

public boolean hasPrevious() {
   if (cursor != null)
      return curser.prev != null;
   return false;
}

答案 1 :(得分:0)

该方法可以简化:

public boolean hasPrevious() {
   return cursor != null && cursor.prev != null;
}

答案 2 :(得分:0)

我相信这是最简化的方式

public boolean hasPrevious() {
    return (current.previous != null);
}

public E previous() {
    if (hasPrevious()) {
        E result = current.element;
        current = current.previous;
        return result;
    }
    throw new NoSuchElementException();
}

答案 3 :(得分:-1)

如果你在这里提到的是对的,那么回答是肯定的。