详解Java8特性之Stream API补充

上一篇文章我介绍了Java 8的Stream API 详解Java8特性之Stream API,忘记补充一点了,Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream(这样可以链式编程)。

看下面例子

@Test
public void test() {
    List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
    list.stream()//
            .filter(x -> x > 3)// 筛选出大于3的元素
            .forEach(System.out::println);

    System.out.println(list);
}

输出结果

4
5
6
[1, 2, 3, 4, 5, 6]

可以看出虽然从流中筛选出大于3的元素,但是数据源list的内容并未被改变,这就好像是我们复制一个文件,而复制出来的文件进行任意修改都不会影响到原始文件。

你可能感兴趣的:(Java基础,Java8特性)