这俩个符号都是java8新特性中lambda表达式的一种,主要是大大减少了代码量,提高效率。
lambda表达式通常都是采用左边方法右边参数的写法,例如:
stu -> stu.getStuId()
同时这个写法也可以写成
stu :: stu.getAge 注意这里没有方法后面的括号,可以看如下的实例:
public class LambdaTest {
public static void main(String[] args) {
String[] ss = {"Rafael Nadal", "Novak Djokovic",
"Stanislas Wawrinka",
"David Ferrer","Roger Federer",
"Andy Murray","Tomas Berdych",
"Juan Martin Del Potro"};
List<String> list = Arrays.asList(ss);
//for循环
for (int i = 0; i < ss.length; i++) {
System.out.println(list.get(i));
}
for (String aa : list) {
System.out.println(aa);
}
//第三种 使用lambda表达式以及函数操作符 ->
list.forEach((bb) -> System.out.println(bb));
//第四种 Java8中使用双冒号::操作符完成
list.forEach(System.out::println);
}
}
for(;;)表示无限循环