Не напрямую, но вы можете просмотреть записи и найти их:
public static BigDecimal findPartialKey(Map<String, BigDecimal> map, String search) {
return map.entrySet()
.stream()
.filter(e -> e.getKey().startsWith(search))
.map(Map.Entry::getValue)
.findFirst()
.orElse(null);
}
Обратите внимание, что использование такого потока, хотя и (сомнительно) элегантного, не использует тот факт, что ключи в TreeMap
отсортированы, и может тратить время на поиск подходящего ключа в регионе, который может не содержит его. Использование хорошего старомодного цикла может быть немного сложнее, но в общем случае должно работать немного лучше:
public static BigDecimalfindPartialKey(SortedMap<String, BigDecimal> map, String search) {
Iterator<Map.Entry<String, Double>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String, Double> entry = iter.next();
String key = entry.getKey();
if (key.startsWith(search)) {
return entry.getValue();
}
if (key.compareTo(search) > 0) {
return null;
}
}
return null;
}