Java新手学习 2021-2-2 记录每天学习内容(如有侵权请联系删除!!!)

2021-2-2

1.Strem流(介绍)

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

2.Strem流的获取方法

在这里插入图片描述

package com.wc.MapDemo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.stream.Stream;

/**
 * @author wc
 * @Date: 2021/02/02/14:47
 */
public class StreamDemo {
    
    
    public static void main(String[] args) {
    
    
        //单列集合
        //mehtod1();
        //双列集合
        //mehtod2();
        //数组
        //mehtod3();
        //同种类型的多个数据
        mehtod4();
    }

    private static void mehtod4() {
    
    
    	//s表示流中的每一个数据
        Stream.of(1,2,3,4).forEach(s-> System.out.println(s));
    }

    private static void mehtod3() {
    
    
        int [] arr={
    
    1,23,4,5,6};
        //s表示流中的每一个数据
        Arrays.stream(arr).forEach(s -> System.out.println(s));
    }

    private static void mehtod2() {
    
    
        HashMap<String, Integer> hm=new HashMap<>();
        hm.put("张三",12);
        hm.put("李四",13);
        hm.put("王五",14);
        hm.put("赵柳",15);
        //s表示流中的每一个数据
        hm.entrySet().stream().forEach(s -> System.out.println(s));
    }

    private static void mehtod1() {
    
    
        ArrayList<String> arrayList=new ArrayList<>();
        arrayList.add("张三");
        arrayList.add("李四");
        arrayList.add("王五");
        //s表示流中的每一个数据
        arrayList.stream().forEach(s -> System.out.println(s));
    }
}

3.Strem流的常见中间操作方法(filter、limit、skip、concat)

在这里插入图片描述

package com.wc.MapDemo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.function.Predicate;
import java.util.stream.Stream;

/**
 * @author wc
 * @Date: 2021/02/02/14:47
 */
public class StreamDemo1 {
    
    
    public static void main(String[] args) {
    
    

        ArrayList<String> arrayList=new ArrayList<>();
        arrayList.add("张三");
        arrayList.add("张三丰");
        arrayList.add("张玲");
        arrayList.add("王五");
        arrayList.add("赵六");
       //filter方法获取流中的每一个数据
       //test中的s,表示流中的每一个数据
       //对test中的s进行判断
       //如果判断结果为true,则当前数据留下
       //如果判断结果为false,则当前数据不要

        arrayList.stream().filter(new Predicate<String>() {
    
    
            @Override
            public boolean test(String s) {
    
    
                boolean result = s.startsWith("张");
                return result;
            }
        }).forEach(s -> System.out.println(s));

        System.out.println("=================================");
        //匿名内部类方法可用lambda表达式来表示
        arrayList.stream().filter((String s)->{
    
    
            boolean result = s.startsWith("张");
            return result;
        }).forEach(s -> System.out.println(s));

		System.out.println("=================================");
        arrayList.stream().filter(s->s.startsWith("张")).forEach(s -> System.out.println(s));
    }
}

在这里插入图片描述

package com.wc.MapDemo;

import java.util.ArrayList;
import java.util.function.Predicate;
import java.util.stream.Stream;

/**
 * @author wc
 * @Date: 2021/02/02/14:47
 */
public class StreamDemo2 {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<String> list=new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add("赵六");
        list.add("赵六");
        //截取指定参数的个数
        list.stream().limit(2).forEach(s-> System.out.println(s));
        //跳过指定参数个数的数据
        list.stream().skip(2).forEach(s-> System.out.println(s));
        //合并a和b两个流
        ArrayList<String> list1=new ArrayList<>();
        list1.add("张三");
        list1.add("李四");
        list1.add("王五");
        list1.add("赵六");
        Stream.concat(list.stream(),list1.stream()).forEach(s-> System.out.println(s));
        //去除重复元素
        list.stream().distinct().forEach(s-> System.out.println(s));
    }
}

4.Strem流的常见终结操作方法

在这里插入图片描述

package com.wc.MapDemo;

import java.util.ArrayList;
import java.util.function.Consumer;
import java.util.stream.Stream;

/**
 * @author wc
 * @Date: 2021/02/02/14:47
 */
public class StreamDemo3 {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<String> list=new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");

        list.stream().forEach(new Consumer<String>() {
    
    
            @Override
            public void accept(String s) {
    
    
                System.out.println(s);
            }
        });
        System.out.println("=========================");
        list.stream().forEach(s -> System.out.println(s));
    }
}

5.Stream流操作案例

在这里插入图片描述

package com.wc.MapDemo;


import java.util.ArrayList;
import java.util.List;

/**
 * @author wc
 * @Date: 2021/02/02/14:47
 */
public class StreamDemo3 {
    
    
    public static void main(String[] args) {
    
    
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
    
    
            list.add(i);
        }
        list.stream().filter(
                (Integer i) -> {
    
    
                    return i % 2 == 0;
                }).forEach(s -> System.out.println(s));
        System.out.println("==================");
        for (Integer integer : list) {
    
    
            System.out.println(integer);
        }
    }

6.Stream流的收集操作

在这里插入图片描述

package com.wc.StreamController;

import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author wc
 * @Date: 2021/02/18/11:03
 */
public class Pstream {
    
    

    public static void main(String[] args) {
    
    
        ArrayList<String> list = new ArrayList<String>();
        list.add("zhangsan,23");
        list.add("lisi,24");
        list.add("wangwu,25");

        //保留年龄大于24的人
        Map<String, Integer> map=list.stream().filter(
                s -> {
    
    
                    //通过逗号分割得到两个字符串
                    String[] split = s.split(",");
                    //年龄在1索引的位置,是一个int类型的数字,将字符串转为int类型
                    int age = Integer.parseInt(split[1]);
                    return age >= 24;
                }
        ).collect(Collectors.toMap(
                (String s)->{
    
    
                    return s.split(",")[0];
                },
                (String s)->{
    
    
                    //年龄为Integer类型的,需要将字符串转化为int类型的
                    return Integer.parseInt(s.split(",")[1]);
                }
        ));
        System.out.println(map);
    }
}

在这里插入图片描述

7.Stream流的练习

在这里插入图片描述

package com.wc.StreamController;

import java.util.ArrayList;
import java.util.stream.Stream;

/**
 * @author wc
 * @Date: 2021/02/18/15:07
 */
public class MyStream {
    
    
    public static void main(String[] args) {
    
    

        ArrayList<String> manList = new ArrayList<String>();
        manList.add("张国立");
        manList.add("张晋");
        manList.add("刘烨");
        manList.add("郑伊健");
        manList.add("徐峥");
        manList.add("王宝强");

        ArrayList<String> womanList = new ArrayList<String>();
        womanList.add("郑爽");
        womanList.add("杨紫");
        womanList.add("关晓彤");
        womanList.add("张天爱");
        womanList.add("杨幂");
        womanList.add("赵丽因");

        Stream<String> stream = manList.stream().filter(name -> name.length() == 3).limit(2);
        Stream<String> stream1 = womanList.stream().filter(name -> name.contains("杨")).skip(1);
        Stream.concat(stream, stream1).forEach(name->{
    
    
            Actor actor=new Actor(name);
            System.out.println(actor);
        });
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_49221590/article/details/113547822
今日推荐