簡體   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