【问题标题】:Unable to import Hashtable in Java无法在 Java 中导入 Hashtable
【发布时间】:2019-07-29 14:57:18
【问题描述】:

我正在运行一个简单的 java 程序,import java.util.Hashtable<Integer, String>; 不会编译。命令行说:

practice1.java:1: error: ';' expected
import java.util.Hashtable<Integer, String>;
                          ^
1 error

但这没有任何意义。

编辑:

我试过import java.util.Hashtable;,但它给了我一个错误:

注意: practice1.java 使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。

【问题讨论】:

  • 发布代码以便人们可以帮助您并提供您的运行方式,您是否使用任何 IDE 运行?
  • 即使您导入像MapSet 这样的泛型类型,您的import 语句也只能使用它们的 名称,即java.util.Map 和@分别为 987654328@。它们的完整指定类型名称不是您在导入它们时应该写的东西。
  • 我不使用 IDE,只使用 Atom 和命令行来运行它。不必发布所有代码,问题仅在于导入。

标签: java hashtable


【解决方案1】:

只是

import java.util.Hashtable;

但您确实想使用 Map 并且可能改用 HashMap

import java.util.HashMap;
import java.util.Map;

// ...

Map<Integer, String> myMap = new HashMap<>();

【讨论】:

  • 请注意,如果同步是一个问题,您需要使用 ConcurrentHashMap。
  • 我明白了,谢谢。我练习 Hashtable 的原因是因为面试(经常被问到)。
  • 告诉面试官Hashtable 是古老的,几年甚至几十年都没有被任何人使用。不要加入使用该课程的公司。
  • @David 面试官可能会询问 concept 哈希表,而不是几年前几乎被 HashMapConcurrentHashMap 取代的特定 java.util.Hashtable
  • 是的,这正是我的结论。感谢您提及