【问题标题】:Get list from hashtable从哈希表中获取列表
【发布时间】:2020-11-13 13:02:46
【问题描述】:

我有这个包含两个列表的哈希表:

Hashtable<List<String>, List<String>> aliases = new Hashtable<>();

aliases.put(List.of("name1", "name2"), List.of("John", "15"));
aliases.put(List.of("name3", "name4"), List.of("William", "23"));

String args = "name1";

我想看看 args 变量是否存在于列表中并获取它

【问题讨论】:

  • 您可以遍历哈希表并检查每个键是否 contains 是您的 args 值,但是通过这种方式使用它会失去哈希表的好处。
  • 您能否详细说明您打算如何使用此表?我想不出使用 List 作为哈希键有用的用例。
  • @MDK 这是一个不和谐的机器人:aliases.put(List.of("commandname", "commandname2"), List.of("commanddescription", "usage"));但如果这是最好的方法,我想知道
  • 如果您的主要用途是查找哪个别名指向哪个命令,最好分别映射每个别名。然后一个简单的get(alias) 将找到正确的命令。如果您的命令只包含名称和用法,则将它们包装到具有这些属性的类中可能比使用列表更有用。

标签: java hashtable


【解决方案1】:

老实说,我不建议以这种方式使用哈希表。使用它的好处就是用 O(1) 找到现有值。

当然,您可以遍历哈希表的每个索引并使用“如果 args 包含列表”,但这将毫无意义且代价高昂。这和根本没有哈希表是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2013-12-11
    • 2023-03-31
    相关资源
    最近更新 更多