我认为在scala中这些方法工作正常但在java9dropWhile中工作不同。这里是takeWhile的例子Stream.of("a","b","c","de","f","g","h").peek(System.out::println).takeWhile(s->s.length()输出很好:a,b,c,de,[a,b,c]它不处理“de”之后的元素,因此它按预期工作但是dropWhile的工作方式与我预期的不同:Stream.of("a","b","c","de","f","g","h").peek(s->System.out.print(s+",")).dropWhile(s-
我正在努力寻找一种方法来根据谓词跳过流开头的某些元素。像这样:dropWhile(n->n301234这相当于ScaladropWhile。 最佳答案 这种操作不是Stream的预期用例,因为它包含元素之间的依赖性。因此,该解决方案可能看起来并不优雅,因为您必须为谓词引入一个全状态变量:classMutableBoolean{booleanb;}MutableBooleaninTail=newMutableBoolean();IntStream.of(0,1,2,3,0,1,2,3,4).filter(i->inTail.b||i>