2016-03-15 36 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