我可以使用类似的东西:
.forEach(System.out::print)
打印我的列表项但是如果我在打印之前还有其他操作要做,我不能像以下那样使用它:
mylist.replaceAll(s -> s.toUpperCase()).forEach(System.out::print)
我收到错误:无法取消引用
答案 0 :(得分:35)
你必须决定。如果要修改列表,则无法组合操作。那你需要两个陈述。
myList.replaceAll(String::toUpperCase);// modifies the list
myList.forEach(System.out::println);
如果您只想在打印前map
值而不修改列表,则必须使用Stream
:
myList.stream().map(String::toUpperCase).forEachOrdered(System.out::println);
答案 1 :(得分:1)
如果要同时打印并保存修改后的值,可以执行
List<String> newValues = myList.stream().map(String::toUpperCase)
.peek(System.out::println).collect(Collectors.toList());
答案 2 :(得分:1)
一次性打印所有这些内容的最佳方法是
Arrays.toString(list.toArray())
答案 3 :(得分:0)
您可以看下面的示例,该示例可以在java8环境中执行。
<tr>
答案 4 :(得分:0)
我做了这样的事情:
listEntries.stream()
.map(obj -> obj.getBuildUrl()).collect(Collectors.toList()));
答案 5 :(得分:0)
如果您不想修改原始值,而只想将打印输出大写,您可以这样做:
list.forEach(s -> System.out.println(s.toUpperCase()));