2016-03-15 64 views
0

如何以Android过滤Java集合,以便保留我的原始集合?在不更改原始集合的情况下过滤Java集合

原始集合必须保持不变,并且对已过滤集合所做的任何更改只会影响它,而不会影响原始集合。

是否有可能在不添加其他库的情况下实现此目的?我读过apache和番石榴可能会使这个过程更容易。

+0

你就不能得到一个流过滤它? – ChiefTwoPencils

+0

我需要这个工作在Android @ChiefTwoPencils – Rohan

回答

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] 
+0

我需要这个android平台。我已经看到一个类似于你创建的例子,虽然它不适合我的情况。 @alfasin – Rohan

+0

Android的轻量级Stream Api如何? https://github.com/aNNiMON/Lightweight-Stream-API @Rohan – NMP

+0

我试图让它在没有添加其他依赖的情况下工作。 – Rohan