4) Использовать хром\огнелис с плагином типа "Удаленный рабочий стол Chrome". Пользователю нужно будет только запустить браузер и продиктовать код.
Правда, у игрока может быть множество кораблей и они, возможно, могут продолжать автоматическое функционирование, когда игрок оффлайн, да и масштабы очень сильно разнятся - я пытаюсь сделать относительно реалистичный мир
List<Map.Entry<String, SomeClass>> comparingByKey = map.entrySet().stream()
.sorted(Map.Entry.comparingByKey((String s1, String s2) -> s1.length() - s2.length())) //Ну или по Value
.collect(Collectors.toList());
точно знаю как изнутри устроен HashMap. Коллизии возникают.тогда вы должны знать что при одинаковом key(коллизия возникла) просто заменится value. Вот с ситуацией если key не имеет собственную реализацию hash и compare то беда точно придет и результат может оказаться непредсказуемым.