У вас есть две возможности.
Во-первых, вы можете хранить свои данные в виде карты карт. Например:
Map<String, Map<String,BookingClass>>
Во-вторых, вы можете использовать TreeMap
. Этот тип карты сортируется, и вы можете найти ключи в заданном диапазоне. Таким образом, предполагая, что вторая часть вашего ключа - это заглавная буква, а «A» - минимум, а «Z» - максимум, вы можете найти диапазон, например, от 12A до 12Z или что-то еще в промежутке между ними.
Методы floorKey
и ceilingKey
могут найти первый и последний ключи.
Метод:
public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
может вернуть вам подкарту между двумя клавишами, по которой вы затем сможете перемещаться.
См. Документацию к API для получения более подробной информации:
https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html