2017-02-10 51 views
0

如果我有一個帶有整數的列表,並且只想要一種方法從列表中打印某些數字。我怎樣才能做到這一點?我的嘗試到目前爲止:Lambda和Streams

List<Integer> list = Arrays.asList(42, 3, 18, 16, 1, 1, 3, 9, 7, 6, 10,); 
System.out.print("odd: "); 
    Predicate<Integer> MyIntegers = (n -> n % 2 != 0) ;  
    printSelected(MyIntegers, odd); 

public static void printSelected(List<Integer> list, Predicate<Integer> predicate) { 
    list.forEach(n -> System.out.print(" " + n)); 

它打印出所有的整數。

+2

當然它中。你沒有做一個'filter()',所以你的謂詞沒有被用於任何事情。 – Kayaman

+0

刪除句子什麼是真正的答案評論。 – Joseph

回答

0

你沒有對任何東西使用謂詞。你需要一個filter(predicate)

你最有可能想要做的是

String odd = list.stream().filter(i -> i % 2 != 0).collect(Collectors.join(" ")); 
0

試試這個

List<String> result = list.stream() 
    .filter(//your lambda function that returns a bool based on some condition) 
    .collect(Collectors.toList());