【问题标题】:how to create a hash table in java如何在java中创建一个哈希表
【发布时间】:2012-05-30 12:22:49
【问题描述】:

我有一个 2 列的 csv 文件。我正在尝试为每个维度创建一个哈希表 - 如果我以前没有见过它,只添加一个值。我想为每一列创建 2 个单独的哈希表。列包含字符串和数值。从类定义中我发现 containsKey(Object key) 方法测试指定的对象是否是此哈希表中的键。我可以解释一些细节,比如我的 csv 文件可能如下所示

New York, 50
Sydney, jessi
california, 10
New York, 10

所以对于第 1 列 New york 在哈希表中出现 2,我想将键 New York 和值 2 放入

谁能帮助我如何使用 java hashtable 类创建一个像这样的哈希表,或者维护一个单独的数组

【问题讨论】:

  • 为什么“纽约”变成了“2”?
  • 我建议您实际阅读HashTable 上的文档(以及它的派生类)。你知道,这不是一个代码生成网站。
  • 您实际拥有多少数据?你真的需要一个哈希表吗?你看过使用简单的地图吗?
  • 我建议将 HashMap 用于标准的“转到”实现,因为更新更酷 ;-)(尽管 HashTable 已被改造为 Map。)

标签: java hashtable


【解决方案1】:

在 SourceForge 上尝试 this 开源项目 OpenCSV。

然后您可以编写类似这样的代码来将 CSV 读取到您的地图中。

try {
    CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(new File("/path/to/your/file.csv"))));
    Map<String, String> result = new HashMap<String, String>();
    for(String[] row : reader.readAll()) {
        result.put(row[0], row[1]);
    }
} catch (FileNotFoundException e1) {
    e1.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

您可以在 OpenCSV 文档here 上阅读更多信息。

【讨论】:

  • 非常感谢您的回复,我正在阅读哈希图,我是使用哈希表和哈希图的新手,...
猜你喜欢
  • 2010-09-06
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多