8. 双冒号的用法

JDK 8 中有双冒号的用法,就是把方法当做参数传到 stream 内部,使 stream 的每个元素都传入到该方法里面执行一下。

关于 Stream 的相关笔记 点击前往

8.1. 示例1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package other.stream;

import java.util.Arrays;
import java.util.List;

public class DoubleColon {
    public static void main(String[] args) {
        String[] names = { "eugene", "forest", "jackson" };
        List<String> nameList = Arrays.asList(names);
        nameList.forEach(ele -> DoubleColon.showPersonInfo(ele)); // 输出一
        nameList.forEach(DoubleColon::showPersonInfo); // 输出二
    }

    public static void showPersonInfo(String info) {
        System.out.print(info);
    }
}
输出一和输出二均为:

eugene
forest
jackson

8.2. 示例2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package other.stream;

import java.util.Random;

public class DStream {

    public static void main(String[] args) {
        Random random = new Random();
        random.ints().limit(10).forEach(System.out::println);
        // ints() : 返回一个有效的无限流的伪 int值。
        // (stream.)limit(long maxSize) : 返回由该流的元素组成的流,截断后的长度不超过maxSize。
    }

}

输出结果不确定,但是其结果一定是10个整数随机数。