java8 stream 流api

流api 之 filter 方法

说明:用于过滤条件,collect 方法用于将过滤条件获得的流 输出到集合

代码

 Stream<T> filter(Predicate<? super T> predicate);

代码分析: 进一步点击 Predicate 类,javadoc 说明该类表示一个谓语词,布尔值类型, 由此说明 filter 中的lambda 表达式最后结果必须是 布尔值类型,符合条件的将被放入该方法返回的结果流中

实例:

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("123");
        list.add("121");
        list.add("234");
        list.add("567567");
        list.add("787");
        list.add("888");
        list.add("999");
        list.add("009");
        // apache-commons-collection4 用于拆分 list
//        List<List<String>> partition = ListUtils.partition(list, 2);
//        for (List<String> li: partition ) {
//            System.out.println(li.toString());
//        }
        String str = "abc";
        List<String> collect = list.stream().filter(x -> x.contains("1")).collect(Collectors.toList());
        System.out.println(collect.toString());
    }

输出结果:

[123, 121]

流api 之map方法

代码

<R> Stream<R> map(Function<? super T, ? extends R> mapper);

代码说明:根据Function 的javadoc 说明得知 : Function类 表示接受一个参数并产生结果的函数。这是一个函数接口,它的函数方法是apply(Object)。,因此该类我们可用于对传入集合进行处理,最后返回一个参数的lambda 表达式

实例:

 public static class User{
        private String account;
        private String icon;

        public String getAccount() {
            return account;
        }

        public void setAccount(String account) {
            this.account = account;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public User(String account, String icon) {
            this.account = account;
            this.icon = icon;
        }
    }




    public static void main(String[] args) {
        List<User> userList = new ArrayList<>();
        userList.add(new User("kk1235","1"));
        userList.add(new User("kk1236","3"));
        userList.add(new User("kkwwww","4"));
        userList.add(new User("kk1238","9"));

        List<String> collect = userList.stream().map(x -> x.getAccount()).collect(Collectors.toList());
        System.out.println(collect);
    }

结果输出:

[kk1235, kk1236, kkwwww, kk1238]

参考:[【java8系列】初识Stream API](https://bbs.csdn.net/topics/605314927)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值