Предполагая, что в вашем файле нет цифр, кроме номера версии, вы можете создать свой собственный компаратор, например:
Comparator<String> versionComparator =
Comparator.comparingDouble(s -> Double.valueOf(s.replaceAll("\\D+", "")));
replaceAll("\\D+", "")
позволяет избавиться от любых нечисловых символов из строки.
Далее, чтобы получить последнюю версию каждого приложения, используйте collect
из Java 8:
Map<String, Optional<String>> map = Files.lines(Paths.get(PATH_TO_FILE))
.collect(groupingBy(s -> s.split(" ")[0], maxBy(versionComparator)));
А теперь просто распечатайте его
map.forEach((key, value) -> System.out.println(value.orElse("Not Found")));