我在Java8中看到一个迭代集合的代码。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
numbers.forEach(System.out::println);
system.out::println
的功能是什么?以及上面的代码如何在列表中迭代。
而运算符::
有什么用途,还有什么地方我们可以使用这个运算符呢?
它被称为“方法引用”,它是用于以下表达式的语法糖:
numbers.forEach(x -> System.out.println(x));
在这里,您实际上不需要名称x
来为每个元素调用println
。这就是方法引用很有帮助的地方-::
运算符表示您将使用一个参数调用println
方法,而您没有显式指定该参数的名称:
numbers.forEach(System.out::println);
我在Java8中看到了一个迭代集合的代码。
我偶然发现以下Java代码使用了的方法引用: 的等效lambda表达式是什么?
问题内容: 我偶然发现了以下Java代码,该代码使用了方法参考 等价的lambda表达式是什么? 问题答案: 方法参考将首先求值,然后创建一个等效的表达式来捕获求值。通常,你将使用 与方法引用相同的方法来实现,但是此lambda表达式将在每次调用该方法时求值。 因此,确切的等效条件是: 如果有人;在两者之间进行调用,则会有所不同。
null 所以我想我有几个问题是基于我的发现。 如果不能重用流,那么何时返回流的实例以供以后使用? 是否可以克隆流,以便重用它们而不会导致?
和之间的区别是什么
流已经提供了方法来转换为数组,那么为什么不提供和?