今更のことであるが。。。
List.of で作る List は、AbstractImmutableList だけど、
Java Stream の groupingBy や toMap で作成したキーに対するリストは、AbstractImmutableList ではない。
だから、
List<Item> list
このすでに存在するAbstractImmutableList でないリストから、以下のような Map を作って
Map<String, List<Item>> map = list.stream().collect(Collectors.groupingBy(t->t.getName()));
Mapの各Key に対するリストの入れ替え操作をしても問題なく期待どおりの動作になる。
map.entrySet().stream().forEach(e->{
List<Item> rlist = e.getValue();
// rlist.set() 等のList入れ替え操作を行う
});
この map が持つリストは変更される。
注意すべきは、元の list も変更される。
(参考)https://oboe2uran.hatenablog.com/entry/2020/04/09/234556