如何检查哈希表中的键与其值之间是否存在值?
我想检查哈希表中或任何键及其值之间是否存在值
我使用以下代码来检查值是否作为键或值存在
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/