我一直在尝试用Java实现一个哈希表来进行练习。为此,我正在尝试使用一系列链表。以下是代码的一部分:
class HashSet implements HashInterface {
private final int TABLE_SIZE = 100;
private LinkedList<Integer>[] myTable;
myTable = (LinkedList<Integer>[]) new LinkedList[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++)
myTable[i] = new LinkedList<Integer>;
}
问题是,每当我运行代码时,它都说:
C:\Java\hash>javac Main.java
Main.java:17: error: <identifier> expected
myTable = (LinkedList<Integer>[]) new LinkedList[TABLE_SIZE];
^
Main.java:19: error: illegal start of type
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: ')' expected
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: illegal start of type
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: <identifier> expected
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: ';' expected
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: > expected
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:19: error: '(' expected
for (int i = 0; i < TABLE_SIZE; i++)
^
Main.java:20: error: ']' expected
myTable[i] = new LinkedList<Integer>;
^
Main.java:20: error: ';' expected
myTable[i] = new LinkedList<Integer>;
^
Main.java:20: error: <identifier> expected
myTable[i] = new LinkedList<Integer>;
^
11 errors
我在这里做错了什么?
答案 0 :(得分:6)
您已将代码置于方法之外(以及静态初始化块之外)。
您可以声明变量,但不能执行代码。您的大部分代码都应该在方法中。
答案 1 :(得分:1)
改变这个 -
myTable[i] = new LinkedList<Integer>;
到
myTable[i] = new LinkedList<Integer>();
同样@Dav Newton提到 - 您的处理代码应该在方法中。