Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)

目录

认识Stream

体验Stream流

使用ListAPI

使用Stream流

Stream流的使用步骤

获取Stream流的方法

获取List集合的Stream流

获取Set集合的Stream流

获取Map集合的Stream流

获取数组的Stream流


认识Stream

什么是Steam

  • 也叫Stream流,是JDK8开始新增的一套API ( java.util.stream.*),可以用于操作集合或者数组的数据
  • 优势:Stream流大量的结合了Lambda的语法风格来编程,提供了一种更加强大,更加简单的方式操作集合或者数组中的数据,代码更简洁,可读性更好

体验Stream流

需求

List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰");
  • 把集合中所有以“张”开头,且是3个字的元素存储到一个新的集合。

使用ListAPI

public class streamTest1 {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        Collections.addAll(names,"张三丰","张无忌","周芷若","赵敏","张强");
        System.out.println(names);
        System.out.println("------------------");
        //找出姓张、且是3个字的名字,存入到一个新集合中去
        List<String> list = new ArrayList<>();
        for(String name:names){
            if(name.startsWith("张") && name.length() == 3){
                list.add(name);
            }
        }
        System.out.println(list);
    }
}

运行结果:

使用Stream流

package Stream;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class streamTest1 {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        Collections.addAll(names,"张三丰","张无忌","周芷若","赵敏","张强");
        System.out.println(names);
        System.out.println("------------------");

        //找出姓张、且是3个字的名字,存入到一个新集合中去
        
        //开始使用Stream流来解决这个问题
        List<String> list2 = names.stream().filter(s -> s.startsWith("张"))
                .filter(a -> a.length()==3).collect(Collectors.toList());
        System.out.println(list2);
    }
}

运行结果是同样的:

Stream流的使用步骤

获取Stream流的方法

  • 获取集合的Stream流
Collection提供的如下方法说明
default Stream<E> stream()获取当前集合对象的Stream流
  • 获取数组的Stream流
Arrays类提供的如下方法说明
public static<T> Stream<T> stream( T[] array )获取当前数组的stream流
Stream类提供的如下方法说明
public static<T> Stream<T> of(T...values)获取当前接收数据的stream流

获取List集合的Stream流

获取Set集合的Stream流

import java.util.*;
import java.util.stream.Stream;

public class streamTest2 {
    public static void main(String[] args) {
        //2.获取Set集合的Stream流
        Set<String> set = new HashSet<>();
        Collections.addAll(set,"刘德华","张曼玉","蜘蛛精","马德","德玛西亚");
        Stream<String> stream1 = set.stream();
        //顺带遍历出名字带“德”的
        stream1.filter(s -> s.contains("德")).forEach(s -> System.out.println(s));
    }
}

运行结果:

获取Map集合的Stream流

import java.util.*;
import java.util.stream.Stream;

public class streamTest2 {
    public static void main(String[] args) {
        //3.获取Map集合的Stream流
        Map<String,Double> map = new HashMap<>();
        map.put("古力娜扎",172.3);
        map.put("迪丽热巴",168.3);
        map.put("马尔扎哈",166.3);
        map.put("卡尔扎巴",168.3);

        //键
        Set<String> keys = map.keySet();
        Stream<String> ks = keys.stream();

        //值
        Collection<Double> values = map.values();
        Stream<Double> vs = values.stream();

        //键+值
        Set<Map.Entry<String,Double>> entries = map.entrySet();
        Stream<Map.Entry<String,Double>> kvs = entries.stream();

        //遍历出键中包含“巴”字的元素
        kvs.filter(e -> e.getKey().contains("巴"))
                .forEach(e -> System.out.println(e.getKey() + "-->" + e.getValue()));
    }
}

运行结果:

获取数组的Stream流


END


学习自:黑马程序员——Java课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值