java - 这个 contains(T Entry) 方法有什么问题? java 。链表

标签 java list generics linked-list sentinel

我正在创建一个链接列表类,并尝试实现此 contains() 方法。

我有 headtail 哨兵节点,因此循环从 head.next 开始。 length 是列表的大小。关于我能给你们的一切:O

public boolean contains(T entry) {

    boolean found = false;
    Node current = head.next;

    for (int i = 0; i < length; i++) {

        if (current.equals(entry)) {

            found = true;
        }
        current = current.next;
    }
    return found;
}

最佳答案

问题是您正在将 NodeT 进行比较,如果您的 equals 方法正确满足正确的约定,则不同的类始终会返回 false。

即重新检查这一行:

if (current.equals(entry)) {

关于java - 这个 contains(T Entry) 方法有什么问题? java 。链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207868/

相关文章:

java - 使用 postgres timestamp 之间计算间隔中的日期数,始终返回 0 条记录

python - 测试多个值存储为列表的字典中是否存在特定的键和值

.net - LINQ : Generics with IQueryable

c# - 将泛型与 LINQ 继承结合使用

Java构造函数问题

java - 向用户显示随机对象时使用访问器方法?

list - SwiftUI - 我想删除 "back button"和 .navigationbartitle 之间的空格

c++ - 使用 boost.python 将通用 C++ 库绑定(bind)到 python

java - AlertDialog Box 中的微调器 - Android

c# - 如何检查对象是否已存在于列表中