Это так же хорошо, как и получается. Вы не можете внести O(N)
изменений менее чем за O(N)
время.
Мы можем сделать стилистические улучшения, хотя. Обратите внимание, что .trim()
бесполезен в первом случае, потому что key
начинается и заканчивается кавычками, и мы можем удалить некоторое дублирование кода:
map.forEach((key, value) -> {
key = key.toUpperCase();
if (key.endsWith("\"") && key.startsWith("\"")) {
modifiedMap.put(key.substring(1, key.length() - 1), value);
} else {
modifiedMap.put(key.trim(), value);
}
});
Хотя я подозреваю, что вы также хотите trim
после взятия substring
, и в этом случае это становится еще проще:
map.forEach((key, value) -> {
if (key.endsWith("\"") && key.startsWith("\"")) {
key = key.substring(1, key.length() - 1);
}
modifiedMap.put(key.trim().toUpperCase(), value);
});