如何使用 for 在 Java 中迭代流?
2022-08-31 23:41:31
我有这个代码:
List<String> strings = Arrays.asList("a", "b", "cc");
for (String s : strings) {
if (s.length() == 2)
System.out.println(s);
}
我想使用过滤器和lambda编写它:
for (String s : strings.stream().filter(s->s.length() == 2)) {
System.out.println(s);
}
我得到.Can only iterate over an array or an instance of java.lang.Iterable
我尝试:
for (String s : strings.stream().filter(s->s.length() == 2).iterator()) {
System.out.println(s);
}
我得到了同样的错误。这有可能吗?我真的宁愿不做 stream.forEach() 并传递一个消费者。
编辑:对我来说,重要的是不要复制元素。