2

我有一个任务,我需要制作自己的(简单)通用链表:

public class Node<T> {

   private int key;
   private T data;
   private Node<T> nextNode;

}

但我需要用哈希表实现一个字典。我想制作一个包含节点的列表。如果发生冲突(两个类型的对象分散到同一个节点,我只是将它们链接起来 - 链表)。

我必须自己实现这个,没有外部帮助(已经实现的列表或其他)

我想如何做到这一点:

public class GenericDictionary<T> implements GenericDictionary_interface<T> {

    private int capacity;   
    private Node<T> [] slots;

    public GenericDictionary () {   
        this.capacity = 31;
        slots = new Node<T>[capacity];  // the array I need which I disperse to
    }
}

然而,这并不完全可能。我确实尝试阅读了该主题,尝试在此处搜索 SO ......但我根本没有得到它。

我唯一的要求是......不要对变量/方法名称偷懒,请让它们易于理解。

4

1 回答 1

5

这是您可以做的最好的事情:

    @SuppressWarnings("unchecked")
    Node<T>[] slots = (Node<T>[]) new Node<?>[capacity];

你无法摆脱警告(除了压制它)。当您需要一个泛型类的数组时,您需要创建具有未指定泛型类型的数组,然后对其进行转换。

于 2012-10-24T10:23:21.847 回答