Java lambda过滤器和映射,我可以避免这些重复调用吗?
我正在学习lambdas,我想知道以下代码:Java lambda过滤器和映射,我可以避免这些重复调用吗?,java,lambda,Java,Lambda,我正在学习lambdas,我想知道以下代码: ArrayList<String> lines = new ArrayList<>(); lines.add("#ignored"); lines.add(" #ignored2"); lines.add("Not Ignored"); lines.add("also not ignored"); lines.add(" also Not Ignored but lowe
ArrayList<String> lines = new ArrayList<>();
lines.add("#ignored");
lines.add(" #ignored2");
lines.add("Not Ignored");
lines.add("also not ignored");
lines.add(" also Not Ignored but lower CASE");
lines.stream()
.filter(line -> !line.trim().startsWith("#"))
.map(line -> line.trim().toLowerCase())
.forEach(System.out::println);
对于筛选器行和映射行,我调用trim()来去除任何前导或尾随空格
这里是否可以修剪线条一次,存储结果,然后在地图中使用该结果?您可以在开始时使用
map
方法修剪线条:
lines.stream()
.map(String::trim) // Trim the spaces
.filter(line -> !line.startsWith("#"))
.map(String::toLowerCase)
.forEach(System.out::println);
您可以在开始时使用
map
方法修剪线条:
lines.stream()
.map(String::trim) // Trim the spaces
.filter(line -> !line.startsWith("#"))
.map(String::toLowerCase)
.forEach(System.out::println);
你可以在下面试试
lines.stream().map(String::trim).filter(line -> !line.startsWith("#")).map(String::toLowerCase).forEach(System.out::println);
你可以在下面试试
lines.stream().map(String::trim).filter(line -> !line.startsWith("#")).map(String::toLowerCase).forEach(System.out::println);
您可以使用相同的方法编写
.map(String::trim)
:)toLowerCase@maxpovverThanx,我将答案更改为使用方法引用toLowerCase@maxpovverThanx,我将答案改为使用方法参考;这是不清楚或没有用处。这就是你的理由。如果你想要更多的信息,请访问Meta。这个问题没有显示任何研究成果;这是不清楚或没有用处。这就是你的理由。如果您想要更多信息,请访问Meta。