【发布时间】:2020-12-07 09:51:09
【问题描述】:
我有一张下面的地图
Map<String, String> map = new HashMap<>();
和dto的集合
List<MyDto> dtoCollection = new ArrayList<>();
class MyDto {
String type;
String name;
}
for(MyDto dto : dtoCollection) {
map.compute(dto.getType(), (key,value) -> value + ", from anonymous\n"());
}
问题是如何将 Map
【问题讨论】:
-
好吧,只需从值 lambda 创建并返回一个新的 StringBuilder,例如
(k,v) -> new StringBuilder(v).append(", from anonymous")。如果您想创建单个 StringBuilder,为什么不直接遍历/流式传输collections()并加入值字符串? -
@Thomas。这意味着我每次都必须在 for 循环中创建一个新的 StringBuilder 吗?并且与不可变字符串没有区别
-
好吧,实际上现在的字符串连接可能正在使用 StringBuilder 或更高效的实现。
标签: java loops dictionary stringbuilder