【发布时间】:2012-01-07 04:07:48
【问题描述】:
我一直在尝试在 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
我在这里做错了什么?
【问题讨论】:
-
您还应该在开始时考虑使用 IDE(如果可能的话)。 Java 非常适合标记,Netbeans 或 Eclipse 都具有代码完成/语法突出显示,这将帮助您学习该语言。此外,它是一种非常冗长的语言,因此 IDE 基本上是生产力所必需的。上面的“外部代码”方法会有一个美妙的红色波浪线。
-
我刚开始时实际上是相当反 IDE 的。它们增加了一定程度的复杂性并隐藏了 Java 编译和执行环境的基础。当必须明确说明和理解它们时,它们更容易学习,并使未来的 IDE 工作更容易一些。 YMMV。
标签: java arrays linked-list hashtable