java - Next 不是一个字段

标签 java

我写了这段代码:

@SuppressWarnings("unchecked")
    public void remove(K key){
        if(this.containsKey(key)){
            int slotNumber = Math.abs(key.hashCode()) % size;
            TableEntry<K,V> previous = (TableEntry<K,V>)elements [slotNumber];

            // first in row
            if(previous.getKey().equals(key)){
                elements[slotNumber] = elements[slotNumber].next;
            }
            else{
                while(!key.equals(previous.next.getKey())){
                    previous = previous.next;   
                }
                previous.next = previous.next.next
            }
        }
    }

行中:

elements[slotNumber] = elements[slotNumber].next;

有一个错误。错误提示:Next 无法解析或者它不是一个字段。 我认为这是因为我尝试访问接下来没有属性的对象。我尝试转换到 (TableEntry),但这种干预对我没有帮助。

这是完整的类(class):HashTable

你能告诉我我做错了什么来帮助我吗? 非常感谢!

最佳答案

previousTableEntry 的实例。

您的内部类TableEntry没有名为next的字段。

因此 previous.next 无效。

顺便问一下,为什么要重新发明轮子? Java 已经有很多 Map。

关于java - Next 不是一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33441217/

相关文章:

java - Netty UDP 性能问题

java - 当我可以 ping IP 地址时,为什么 InetAddress.isReachable 返回 false?

java - 内存不足错误: Java heap space when trying to create ArrayList

java - 将 onClickListener 设置为自定义适配器

java - realize() 和 prefetch() 到底是什么意思?

java - 二维数组的 ArrayList

java - 使用 mockito 在另一种方法中测试方法的使用

java - 在 Matchers.eq 中调用 spy 方法时,参数匹配器的使用无效

java - java字符串替换效率

java - 多平台 libGDX 应用程序中的 Assets 行为