Java 不是每次都执行流筛选器方法 公共类测试{ 公共静态void main(字符串[]args){ long filtered=Stream.of(“test1”、“test2”、“test3”) .filter(getPredicate()) .count(); 系统输出打印项次(过滤); } 私有静态谓词getPredicate(){ System.out.println(“打印此”);//item.contains(“测试”); } }
我希望上面的代码打印3次打印这个。但是它只打印了一次,有人能解释一下吗?Java 不是每次都执行流筛选器方法 公共类测试{ 公共静态void main(字符串[]args){ long filtered=Stream.of(“test1”、“test2”、“test3”) .filter(getPredicate()) .count(); 系统输出打印项次(过滤); } 私有静态谓词getPredicate(){ System.out.println(“打印此”);//item.contains(“测试”); } },java,Java,我希望上面的代码打印3次打印这个。但是它只打印了一次,有人能解释一下吗?getPredicate()在filter()之前被调用,所以您会看到“打印这个”一次。如果希望看到try,则返回的谓词将被调用三次: public class Test { public static void main(String[] args) { long filtered = Stream.of("test1", "test2", "test3") .filter(getPred
getPredicate()
在filter()
之前被调用,所以您会看到“打印这个”一次。如果希望看到try,则返回的谓词将被调用三次:
public class Test {
public static void main(String[] args) {
long filtered = Stream.of("test1", "test2", "test3")
.filter(getPredicate())
.count();
System.out.println(filtered);
}
private static Predicate<String> getPredicate() {
System.out.println("print this");//<-- this line was printed only once
return item -> item.contains("test");
}
}
私有静态谓词getPredicate(){
System.out.println(“打印此”);
退货项目->{
System.out.println(“打印那个”);
返回项目。包含(“测试”);
};
}
您的代码调用了多少次getPredicate()
?调用了一次
private static Predicate<String> getPredicate() {
System.out.println("print this");
return item -> {
System.out.println("print that");
return item.contains("test");
};
}