首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambda和Streams

Lambda和Streams
EN

Stack Overflow用户
提问于 2017-02-10 18:26:28
回答 2查看 40关注 0票数 0

如果我有一个包含整数的列表,并且只需要一个方法来打印该列表中的某些数字。我该怎么做呢?我到目前为止的尝试是:

代码语言:javascript
复制
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));

它打印出所有的整数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-10 18:31:33

您没有将谓词用于任何事情。你需要一个filter(predicate)

您最可能想要做的是

代码语言:javascript
复制
String odd = list.stream().filter(i -> i % 2 != 0).collect(Collectors.join(" "));
票数 0
EN

Stack Overflow用户

发布于 2017-02-10 18:31:36

尝尝这个

代码语言:javascript
复制
List<String> result = list.stream()
    .filter(//your lambda function that returns a bool based on some condition)
    .collect(Collectors.toList());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42157020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档