我正在制作电话簿中条目的链接列表。但是,我正在努力制定出完整的删除方法。我正在尝试检测要删除的条目不在列表中,并给出“找不到条目”消息。我正在使用链表的列表界面。到目前为止,这是删除方法。现在,我试图在最后的if语句中介绍“最后一个节点”的情况。但这是行不通的。如果我没有使用列表接口,我想我可以使用getLast()方法并将其与我当前所在的条目进行比较,但是我更喜欢这样做,并想出另一种方法来解决它。有任何想法吗 ?
--edit其不起作用的原因是,如果我删除列表中的最后一个条目,即使该条目作为最后一个节点并被成功删除,它也会打印出未找到条目的消息

 public void deleteEntry(String number) {
    ListIterator<Entry> i = phoneBook.listIterator();

    while(i.hasNext()){
        Entry e = i.next();
        if(e.getNumber().equals(number)){
            i.remove();
            break;
        }
    }
    if(phoneBook.size() != 0 && (!(i.hasNext()))){
        System.out.println("Entry not found");
    }
}

最佳答案

您可以这样进行:

public void deleteEntry(String number) {
    int size = phoneBook.size();
    for (ListIterator<Entry> i = phoneBook.listIterator(); i.hasNext(); ) {
        Entry e = i.next();
        if (e.getNumber().equals(number)) {
            i.remove();
            break;
        }
    }
    if (phoneBook.size() == size) {
        System.out.println("Entry not found");
    }
}

07-27 15:02