Сортировка строковых ключей карты в соответствии с их числовым значением

Мне нужно написать класс, который обрабатывает Map, обрабатывая его ключи в соответствии с их числовым порядком. В довершение ко всему, некоторые ключи не являются действительными целыми числами, и они должны обрабатываться в конце, в соответствии с лексикографическим порядком.

Например, если ключи:

["10", "2", "100", "duck", "black"]

Они должны обрабатываться в таком порядке -

["2", "10", "100", "black", "duck"]

Какой самый элегантный способ сделать это в Java, кроме итерации и попытки поймать NumberFormatException? Очевидно, что я не могу контролировать формат заданной карты.

0
задан APerson 24 November 2014 в 23:05
поделиться