java - 检查哈希表中的键与其值之间是否存在值

标签 java hashtable contains

如何检查哈希表中的键与其值之间是否存在值?

我想检查哈希表中或任何键及其值之间是否存在值

我使用以下代码来检查值是否作为键或值存在

if(table.containsKey(val) || table.containsValue(val))

但是如何检查它是否存在于任何键及其对应值之间?

最佳答案

所以基本上你想要展平 map 并检查给定值是否包含在最小键或值与最大键或值之间的范围内。

您可以将所有键和值放入 a SortedSet 中,例如 TreeSet,它具有 first()last() 方法来检索最低/最高的项目。

它可能看起来像这样:

SortedSet<Integer> set = new TreeSet<> ();
set.addAll(map.keySet());
set.addAll(map.values());

//return true if input within the range
return (input >= set.first() || input <= set.last());

您可以与 map 并行填充集合以提高效率,以避免为每个查询重新创建集合。

关于java - 检查哈希表中的键与其值之间是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17360430/

相关文章:

Java串行读取程序返回乱码

java - 如何覆盖特定的 Seam 组件?

java - 运行应用程序时无法实例化 Activity

java - Java 中的哈希表和同步

java - 字符串不包含在java中不能正常工作

java - 如何从 xml feed 获取数据

c - 哈希表内存泄漏

c# - 在添加字典之前检查字典中是否存在键的最佳方法?

java - 实现 Shape 接口(interface)的 boolean contains(Rectangle2D r) 方法

java - 检查数组是否具有特定字符,为什么我的代码不起作用?