矢量链接列表结构的构造函数

时间:2017-04-26 22:18:46

标签: java generics vector linked-list hashmap

我正在尝试创建一个数据结构,它本质上是一个哈希表,由向量中的链表组成。其中链表的每个节点都包含链接,元素E和键K.在向量的每个索引中,应该有一个链表。

我正在尝试创建构造函数,但我遇到了一些麻烦,因为我不知道如何初始化我的对象以在每个向量索引中包含链接列表。我收到的错误如下:

  

线程中的异常" main" java.lang.Error:未解决的编译问题:   列表无法解析为变量   K无法解析为变量    E无法解析为变量     list无法解析为变量      令牌上的语法错误" =",< = expected     LinkedList类型的参数数量不正确;它不能用参数K,E

进行参数化

我正在寻找通过使用构造函数在每个索引中保存链表的表。

任何人都可以通过这个帮助或推动我朝着正确的方向前进吗?到目前为止,这就是我所拥有的:

import java.util.*;

public class NewTable <K, E> {

private Vector <LinkedList<HashPair <K,E>>> table;

public NewTable(int capacity){
    if (capacity <= 0){
        throw new IllegalArgumentException("Capacity is negative.");
    }
    else{


        table = new Vector<LinkedList<HashPair<K, E>>>(capacity);

        for (int i=0;i<table.capacity();i++){
            table.set(i, List<K, E> list = new LinkedList<K, E>());
        }
    }   
}

public static void main(String[] args) {
    NewTable<String, String> table = new NewTable<String, String>(5);

    table.put("Good", "Food");
}

}

1 个答案:

答案 0 :(得分:0)

table.set(i, List<K, E> list = new LinkedList<K, E>());

这不是有效的Java。你根本无法在方法调用中声明一个新变量。

老实说,这里不需要一个名为list的变量,所以你可以简单地省略它,如下所示:

table.add(new LinkedList<HashPair<K, E>>());

(注意:我还将set更改为add,因为set假定指定索引处已存在某些内容。)

编辑:我没有意识到你LinkedList上有两个类型参数。更新了我的部分答案。