I'm willing to bet that you can, if you can guarantee that what you are testing, and the type of your keys Number.
. O (n log (n)), - O (n), O (n log (n)).
public <K extends Number & Comparable<K>, V extends Number> K findSmallestKey(Map<K, V> values, V searchItem) {
List<K> keys = new ArrayList<>(values.keySet());
Collections.sort(keys);
for(K key : keys) {
if(values.get(key).doubleValue() == searchItem.doubleValue()) {
return key;
}
}
return null;
}
Guava BiMap, ; .
.
public <K extends Number, V extends Number> K findSmallestKeyWithBimap(BiMap<K, V> values, V searchItem) {
return values.inverse().get(searchItem);
}
, ( Number, Number Comparable). , .