【发布时间】:2014-03-27 06:22:42
【问题描述】:
我是哈希表的新手,我只是在弄清楚它的基本操作。 我创建了一个如下所示的哈希表并插入了值。
Hashtable<Integer , String> ht = new Hashtable<Integer , String>();
ht.put(1234, "ABCD");
ht.put(2345, "EFGH");
ht.put(4567, "IJKL");
我可以使用如下所示的键删除所需的元素
System.out.println("Deleting entry with key 2345");
ht.remove(2345);
System.out.println(ht.toString());
给出以下输出
Deleting entry with key 2345
{4567=IJKL, 1234=ABCD}
我找不到任何有助于使用该值作为索引在哈希表中定位元素并删除该元素的方法。我该怎么办?
【问题讨论】:
-
你关心这个操作的效率吗?如果这样做,则需要不同的数据结构。
-
呃,你知道一个值可以在地图中出现多次,对吧?
-
@NPE 如何改进它?
-
@fge 是的。我明白这一点。但就像我说的,我是使用哈希表的新手。现在只需使用简单的操作即可弄清楚它的正面和反面。
-
嗯,
Map的目的是通过键而不是值来访问条目。一些库(例如 Guava)确实有双向映射,但删除给定值的键不是Map的“简单操作”;)