使用java 8 api打印列表项

时间:2015-07-15 14:16:06

标签: java java-8

我可以使用类似的东西:

 .forEach(System.out::print)

打印我的列表项但是如果我在打印之前还有其他操作要做,我不能像以下那样使用它:

mylist.replaceAll(s -> s.toUpperCase()).forEach(System.out::print)

我收到错误:无法取消引用

6 个答案:

答案 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()));