过滤Java集合而不更改原始集合

时间:2016-03-15 05:15:56

标签: java android collections filtering

如何以保存原始集合的方式过滤 Android 中的java集合?

原始集合必须保持不变,对过滤集合所做的任何更改都应该只影响它而不是原始集合。

是否可以在不添加其他lib的情况下实现此目的?我已经读过apache和guava可以使这个过程更容易。

1 个答案:

答案 0 :(得分:0)

如您所见,运行以下代码(Java 8)并不能修改原始集合:

    List<Integer> lst = new LinkedList<>();
    lst.add(1);
    lst.add(2);
    lst.add(3);
    lst.add(4);
    lst.add(5);
    lst.stream()
            .filter(x -> (x % 2 == 0))
            .collect(Collectors.toList())
            .forEach(x -> System.out.print(x + " "));

    System.out.println("\n==============");
    System.out.println(Arrays.toString(lst.toArray()));

<强>输出

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