java8 stream流

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

//过滤不符合filter元素
    @Test
    public void filter(){

        List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jdk");
        //strings.parallelStream();//并行流
//    strings.stream();//普通流
        List<String> f = strings.stream().filter(strs -> strs.contains("f")).collect(Collectors.toList());
        System.out.println(f);
    };


打印日志
E:\JDK\jdk1.8.0_71\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:E:\idea\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=52946:E:\idea\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath "E:\idea\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar;E:\idea\IntelliJ IDEA 2021.2.1\plugins\junit\lib\junit5-rt.jar;E:\idea\IntelliJ IDEA 2021.2.1\plugins\junit\lib\junit-rt.jar;E:\JDK\jdk1.8.0_71\jre\lib\charsets.jar;E:\JDK\jdk1.8.0_71\jre\lib\deploy.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\access-bridge-64.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\cldrdata.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\dnsns.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\jaccess.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\jfxrt.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\localedata.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\nashorn.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\sunec.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\sunjce_provider.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\sunmscapi.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\sunpkcs11.jar;E:\JDK\jdk1.8.0_71\jre\lib\ext\zipfs.jar;E:\JDK\jdk1.8.0_71\jre\lib\javaws.jar;E:\JDK\jdk1.8.0_71\jre\lib\jce.jar;E:\JDK\jdk1.8.0_71\jre\lib\jfr.jar;E:\JDK\jdk1.8.0_71\jre\lib\jfxswt.jar;E:\JDK\jdk1.8.0_71\jre\lib\jsse.jar;E:\JDK\jdk1.8.0_71\jre\lib\management-agent.jar;E:\JDK\jdk1.8.0_71\jre\lib\plugin.jar;E:\JDK\jdk1.8.0_71\jre\lib\resources.jar;E:\JDK\jdk1.8.0_71\jre\lib\rt.jar;E:\Maven\Maven-workspace\pro05-demo-all-in-one\target\test-classes;E:\Maven\Maven-workspace\pro05-demo-all-in-one\target\classes;E:\Maven\scarepository\mysql\mysql-connector-java\5.1.37\mysql-connector-java-5.1.37.jar;E:\Maven\scarepository\com\alibaba\druid\1.2.8\druid-1.2.8.jar;E:\Maven\scarepository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;E:\Maven\scarepository\commons-dbutils\commons-dbutils\1.6\commons-dbutils-1.6.jar;E:\Maven\scarepository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;E:\Maven\scarepository\org\thymeleaf\thymeleaf\3.0.11.RELEASE\thymeleaf-3.0.11.RELEASE.jar;E:\Maven\scarepository\ognl\ognl\3.1.12\ognl-3.1.12.jar;E:\Maven\scarepository\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;E:\Maven\scarepository\org\attoparser\attoparser\2.0.5.RELEASE\attoparser-2.0.5.RELEASE.jar;E:\Maven\scarepository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;E:\Maven\scarepository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;E:\Maven\scarepository\junit\junit\4.12\junit-4.12.jar;E:\Maven\scarepository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;E:\Maven\scarepository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\Maven\scarepository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.gtguigu.maven.ImperialCourtTest,filter
[efg]

Process finished with exit code 0
去重
    @Test
    public void distinct(){


        List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jdk");
		将list转换为流,然后去重,在转换成list
        List<String> collect = strings.stream().distinct().collect(Collectors.toList());
        System.out.println(collect);
        System.out.println(strings);

    };

在这里插入图片描述

类中值去重
   @Test
    public void distinct(){
        ArrayList<user> objects = new ArrayList<>();
        objects.add(new user("xiao", 12));
        objects.add(new user("xiao", 12));
        objects.add(new user("ming", 188));
        List<user> collect = objects.stream().distinct().collect(Collectors.toList());
        System.out.println(collect);

    };


下面user类
package com.gtguigu.maven;

import java.util.Objects;

public class user {
   private String  name;
   private Integer age;

    public user() {
    }

    public user(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "user{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        user user = (user) o;
        return Objects.equals(name, user.name) && Objects.equals(age, user.age);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

在这里插入图片描述

分页截取前面几个
 @Test
    public void limit(){


        List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jdk");
        List<String> collect = strings.stream().limit(3).collect(Collectors.toList());
        System.out.println(collect);


    };

在这里插入图片描述

去掉前面几个
在这里插入图片描述
在这里插入图片描述

    @Test
    public void limit(){

        //给加后缀
        List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jdk");
        List<String> chen = strings.stream().map(sta -> sta.concat("_chen")).collect(Collectors.toList());后缀
         List<String> chen = strings.stream().map(sta -> "chen_" + sta).collect(Collectors.toList());前缀
        System.out.println(chen);


    };

在这里插入图片描述
扁平化

在这里插入图片描述

     public static Stream<Character> getcharacterByString(String str){

            ArrayList<Character> objects = new ArrayList<>();
            for(Character character : str.toCharArray()){
                objects.add(character);
            }
        return objects.stream();
        };

排序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去重
在这里插入图片描述
给set转化map添加key
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://www.bilibili.com/video/BV1VQ4y1P7Fq?spm_id_from=333.999.0.0&vd_source=0d7fe0d6099306fd3167b246fa90892f

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值