Java 检查哈希表中的键与其值之间是否存在值
如何检查哈希表中的键与其值之间是否存在值 我想检查一个值是否存在于哈希表中,或者在任何键和它的值之间 我使用以下代码检查值是否作为键或值存在Java 检查哈希表中的键与其值之间是否存在值,java,hashtable,contains,Java,Hashtable,Contains,如何检查哈希表中的键与其值之间是否存在值 我想检查一个值是否存在于哈希表中,或者在任何键和它的值之间 我使用以下代码检查值是否作为键或值存在 if(table.containsKey(val) || table.containsValue(val)) 但是,如何检查它是否存在于任何键及其对应值之间?因此,基本上,您希望展平地图,并检查给定值是否包含在最低键或值与最大键或值之间的范围内 您可以将所有键和值放入,例如TreeSet,它有first()和last()方法来检索最低/最高项 它可能是这
if(table.containsKey(val) || table.containsValue(val))
但是,如何检查它是否存在于任何键及其对应值之间?因此,基本上,您希望展平地图,并检查给定值是否包含在最低键或值与最大键或值之间的范围内 您可以将所有键和值放入,例如
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());
SortedSet set=new TreeSet();
set.addAll(map.keySet());
set.addAll(map.values());
//如果输入在范围内,则返回true
return(input>=set.first()| | input因此,基本上您希望展平映射并检查给定值是否包含在最小键或值与最大键或值之间的范围内
您可以将所有键和值放入,例如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());
SortedSet set=new TreeSet();
set.addAll(map.keySet());
set.addAll(map.values());
//如果输入在范围内,则返回true
return(输入>=set.first()| |输入试试这个
迭代哈希表
将键和值存储在diff temp中
然后比较tempkey和tempvalue之间的值
试试这个
迭代哈希表
将键和值存储在diff temp中
然后比较tempkey和tempvalue之间的值
这也适用于:
public static <T extends Comparable> boolean hasValueBetween(Map<T, T> map, T value) {
for(Map.Entry<T, T> entry : map.entrySet()) {
if (entry.getKey().compareTo(value) <= 0 && entry.getValue().compareTo(value) >= 0) {
return true;
}
}
return false;
}
public静态布尔hasValueBetween(映射映射,T值){
对于(Map.Entry:Map.entrySet()){
if(entry.getKey().compareTo(value)=0){
返回true;
}
}
返回false;
}
这也适用于:
public static <T extends Comparable> boolean hasValueBetween(Map<T, T> map, T value) {
for(Map.Entry<T, T> entry : map.entrySet()) {
if (entry.getKey().compareTo(value) <= 0 && entry.getValue().compareTo(value) >= 0) {
return true;
}
}
return false;
}
public静态布尔hasValueBetween(映射映射,T值){
对于(Map.Entry:Map.entrySet()){
if(entry.getKey().compareTo(value)=0){
返回true;
}
}
返回false;
}
您能否澄清“在任何键及其对应值之间”?@user2133404在我看来似乎像迭代器问题;如果您知道如何使用它们。假设值为6。如果哈希表包含键5和值8,则它应该返回true。不需要在标题中添加主标记。@user2133404您需要在这里添加什么。我这样得到了您想要在value=x处查找哈希表键并查找哈希表值的方法e其中key=x。对吗?你能澄清一下“在任意一个key和它对应的值之间”吗?@user2133404在我看来似乎像迭代器问题;如果您知道如何使用它们。假设值为6。如果哈希表包含键5和值8,则它应该返回true。不需要在标题中添加主标记。@user2133404您需要在这里添加什么。我这样得到了您想要在value=x处查找哈希表键并查找哈希表值的方法e其中key=x,对吗?