【无标题】Java之stream流使用

郭胆子的一手代码。

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TestStream {
    public static void main(String[] args) {
        List<User> users = new ArrayList<>();
        users.add(new User("a",1));
        users.add(new User("b",2));
        users.add(new User("c",3));
        users.add(new User("d",8));
//        users.stream().map(user -> user.name+""+ user.name).filter(s -> s.contains("aa")).collect(Collectors.toList()).forEach(s -> System.out.println(s));
        users.stream().filter(user -> user.sex>2).map(new Function<User, Person>() {
            @Override
            public Person apply(User user) {
                Person person = new Person();
                person.setpName(user.name);
                person.setpSex(user.sex);
                System.out.println("===========");
                return person;
            }
        }).collect(Collectors.toList()).forEach(s-> System.out.println("==="+s.toString()));

        System.out.println("=====================================================================================");
        System.out.println("=====================================================================================");


        users.stream().filter(TestStream::comp).flatMap((Function<User, Stream<?>>) user -> {
            Person person = new Person();
            person.setpName(user.name);
            person.setpSex(user.sex);
            System.out.println("===========");
            return Stream.of(person);
        }).collect(Collectors.toList()).forEach(s-> System.out.println("==="+s.toString()));

    }
    private static boolean comp(User user){
       return user.sex>2;

    }

    private static class User{
        private String name;
        private int sex;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getSex() {
            return sex;
        }

        public void setSex(int sex) {
            this.sex = sex;
        }

        private User(String name, int sex){
            this.name=name;
            this.sex=sex;

        }
    }
    private static class Person{
        private String pName;
        private int pSex;
//        private Person(String pName,int pSex){
//            this.pName=pName;
//            this.pSex=pSex;
//        }

        @Override
        public String toString() {
            return "Person{" +
                    "pName='" + pName + '\'' +
                    ", pSex=" + pSex +
                    '}';
        }

        public String getpName() {
            return pName;
        }

        public void setpName(String pName) {
            this.pName = pName;
        }

        public int getpSex() {
            return pSex;
        }

        public void setpSex(int pSex) {
            this.pSex = pSex;
        }
    }
}

执行结果

"C:\Program Files\Java\jdk1.8.0_251\bin\java.exe" "-javaagent:E:\idea\idea_install_2\IntelliJ IDEA 2019.3.5\lib\idea_rt.jar=51025:E:\idea\idea_install_2\IntelliJ IDEA 2019.3.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_251\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\rt.jar;E:\Java\HelloGyw\out\production\HelloGyw" TestStream
===========
===========
===Person{pName='c', pSex=3}
===Person{pName='d', pSex=8}
=====================================================================================
=====================================================================================
===========
===========
===Person{pName='c', pSex=3}
===Person{pName='d', pSex=8}

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值