Есть ли реализация карты Java, которая возвращает ближайший содержащий ключ - PullRequest
6 голосов
/ 11 января 2012

Я ищу реализацию Map, которая возвращает значение, связанное с запрошенным ключом, или, если его нет, возвращает самое близкое значение, большее или меньшее, как запрошено (вместе с фактическим ключом, возможно, в виде Map.Entry).

Например, если карта содержала следующие пары ключ / значение String:
альфа: AYE, бета: BEE, чарли: CEE, дельта: DEE
и вы запрашиваете «Далее выше» для «Канада "Вы бы вернулись, Чарли: CEE

Конечно, если вы попросите следующий" выше "или" Следующий ниже "для" Чарли ", вы получите Чарли: CEE

Он должен использовать компаратортак что, если он содержит цифровые клавиши 1, 2, 3 и я запрашиваю Next выше для 1.4, он вернет клавишу 2.

1 Ответ

12 голосов
/ 11 января 2012

Используйте NavigableMap: http://docs.oracle.com/javase/6/docs/api/java/util/NavigableMap.html

В частности, используйте floorEntry или потолочный ввод или их комбинацию.

TreeMap является экземпляром NavigableMap, поэтому вы можете использовать это: http://docs.oracle.com/javase/6/docs/api/java/util/TreeMap.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...