繁体   English   中英

双链列表中的hasPrevious()方法

[英]hasPrevious() method in doubly linked lists

对于类,我正在使用迭代器创建双向链接列表。 我们才刚刚开始这种工作,所以我的经验只有几周的历史。

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

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

我很纳闷,因为我的教授告诉我要重新考虑这种方法,但是我真的想不起来还有什么其他方法。 他可能正在寻找与我所缺少的迭代器或双链表有关的任何东西吗?

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

也许他想让您简化一下

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

该方法可以简化:

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

我相信这是最简单的方法

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

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

如果您在这里提到的是正确的,那么答案是肯定的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM