Правильная вещь - использовать код «escape-escape» для декодирования строки.
>>> myString = "spam\\neggs"
>>> decoded_string = bytes(myString, "utf-8").decode("unicode_escape") # python3
>>> decoded_string = myString.decode('string_escape') # python2
>>> print(decoded_string)
spam
eggs
Не используйте AST или eval. Использование строковых кодеков намного безопаснее.
Возьмите набор карт и соберите его самостоятельно:
Map<String, String[]> result = map.entrySet()
.stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
e -> e.getValue().toArray(new String[e.getValue().size()])
));