JDK1.8之Stream流

Stream流

  • 接口:java.util.Stream

获取流对象的方式

  • 使用List<>接口中的方法

default Stream<E> stream() {
    return StreamSupport.stream(spliterator(), false);
}

使用Arrays工具类中的静态方法获取stream对象 (数组)

 public static <T> Stream<T> stream(T[] array) {
     return stream(array, 0, array.length);
 }

// 使用: 
Stream stram = Arrays.stream(数组)

Stream接口中的静态方法

 public static<T> Stream<T> of(T t) {
     return StreamSupport.stream(new Streams.StreamBuilderImpl<>(t), false);
 }

public static<T> Stream<T> of(T... values) {
    return Arrays.stream(values);
}

收集方法

  1.toList
  2. toSet
  3.toMap
  4.toCollection(Supplier<>)
  5.joining()

使用Stream流

使用步骤:

  1.获取Straem实现类的对象

  2. 使用方法

注:

  stream流只能使用一次,不能重复//使用Stream流

复制代码
List<String> list = new ArrayList<>();
        list.add("java");
        list.add("javascript");
        list.add("c#");
        list.add("c++");
        list.add("c");
        list.add("spring boot");
        list.add("ssm");
        list.add("redis");
        list.add("elasticsearch");

//获取流对象 Stream<String> stream = list.stream();
//遍历集合 stream.forEach(s -> System.out.println(s));
Optional
<String> first = list.stream().findFirst(); System.out.println(first.get());
复制代码

Filter的使用

  • filter用于过滤信息

复制代码
        List<String> list = new ArrayList<>();
        list.add("java");
        list.add("javascript");
        list.add("c#");
        list.add("c++");
        list.add("c");
        list.add("spring boot");
        list.add("ssm");
        list.add("redis");
        list.add("elasticsearch");

//使用filter过滤信息 字符长度大于等于3且以s开头的数据 list.stream() .filter(s -> s.length()>=3) .filter(s-> s.startsWith("s")) .forEach(s-> System.out.println(s));
复制代码

 skip和limit方法

复制代码
List<String> letterList = new ArrayList<>();
        letterList.add("d");
        letterList.add("z");
        letterList.add("f");
        letterList.add("b");
        letterList.add("a");
        letterList.add("c");
        letterList.add("k");

        //skip跳过输出元素
        //limit 限制输出元素个数
        letterList.stream()
                .skip(2)
                .limit(3)
                .forEach(s-> System.out.println(s));
复制代码

 

posted @   Joshua_BlueSky  阅读(45)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示