Чтобы преобразовать все 3 строки в Map<String,Map<String,String>>
в верхний регистр 1 , создайте новую карту.
Map<String,Map<String,String>> input = Map.of("abc", Map.of("Def", "Ghi"),
"jkl", Map.of("MNO", "PQR", "stu", "vwx"));
Map<String,Map<String,String>> output = input.entrySet().stream()
.collect(Collectors.toMap(
e1 -> e1.getKey().toUpperCase(),
e1 -> e1.getValue().entrySet().stream().collect(Collectors.toMap(
e2 -> e2.getKey().toUpperCase(),
e2 -> e2.getValue().toUpperCase()))));
System.out.println(input);
System.out.println(output);
Выходные данные
{abc={Def=Ghi}, jkl={stu=vwx, MNO=PQR}}
{ABC={DEF=GHI}, JKL={STU=VWX, MNO=PQR}}
Примечание: Код не будет выполнен с IllegalStateException: Duplicate key
, если есть 2 клавиши, которые станут одинаковыми в верхнем регистре.
Map<String,Map<String,String>> input = Map.of("aaa", Map.of("bbb", "ccc", "Bbb", "Ccc"));
Выходные данные
java.lang.IllegalStateException: Duplicate key BBB (attempted merging values CCC and CCC)
1) Вопрос первоначально задавался заглавными буквами, но с тех пор был изменен для запроса строчных букв. Оставив ответ без изменений, поскольку это не имеет значения, чтобы показать, как заменить корпус.