我尝试在List<String>
:
List<String> lines = Arrays.asList("one", "two");
List<String> prependedLines = lines.stream().map(line -> "." + line);
但是会出现
之类的错误no instance(s) of type variable(s) R exist so that java.util.stream.Stream<R> conforms to java.util.List<java.lang.String>
如何将字符串添加到List<String>
的每个元素?
答案 0 :(得分:6)
您需要收集结果:
lines.stream().map(line -> "." + line).collect(Collectors.toList());
否则,返回类型是字符串流,与List<String>
答案 1 :(得分:0)
另一种方式,非常简洁,不使用流,可以就地替换列表中的元素:
lines.replaceAll(line -> "." + line);
List.replaceAll(...)
方法通过应用给定的UnaryOperator
来替换列表中的每个元素。
编辑:如果您想要一个包含修改过的元素的新列表,您可以先复制原始列表:
List<String> result = new ArrayList<>(lines);
result.replaceAll(line -> "." + line);
如果您使用的是Java 10+,它甚至更短:
var result = new ArrayList<>(lines);
result.replaceAll(line -> "." + line);