Stream流的简单用法

filter

//stream流中的filter
//filter 方法用于通过设置的条件过滤出元素。以下代码片段使用 filter 方法过滤掉空字符串:
List<String> filter = Arrays.asList("mz", "", "mz55", "m", "MZ");
Stream<String> stringStream = filter.stream().filter(item -> !item.isEmpty());
stringStream.forEach(item -> {
    stringBuilder1.append(item).append(",");
});
System.out.println(stringBuilder1);
//mz,mz55,m,MZ

map

//stream流中的map
//map 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:
List<Integer> map = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder = new StringBuilder();
Stream<Integer> integerStream = map.stream().map(i -> i * i);
integerStream.forEach(item -> {
    stringBuilder.append(item).append(",");
});
System.out.println(stringBuilder);
//9,4,4,9,49,9,25,

limit/skip

//limit/skip
//imit 返回 Stream 的前面n 个元素;skip 则是扔掉前n个元素。以下代码片段使用limit 方法保留4个元素:
List<Integer> limit = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder2 = new StringBuilder();
Stream<Integer> limit1 = limit.stream().limit(4);
limit1.forEach(item ->{
    stringBuilder2.append(item).append(",");
});
System.err.println(stringBuilder2);
//3,2,2,3,

sorted

//sorted
//sorted 方法用于对流进行排序。以下代码片段使用 sorted 方法进行排序:
List<Integer> sorted = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder3 = new StringBuilder();
Stream<Integer> sorted1 = sorted.stream().sorted();
sorted1.forEach(item -> {
    stringBuilder3.append(item).append(",");
});
System.out.println(stringBuilder3);
//2,2,3,3,3,5,7,

distinct

//distinct
//distinct主要用来去重,以下代码片段使用 distinct 对元素进行去重:
List<Integer> distinct = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
StringBuilder stringBuilder4 = new StringBuilder();
Stream<Integer> distinct1 = distinct.stream().distinct();
distinct1.forEach(item -> {
    stringBuilder4.append(item).append(",");
});
System.out.println(stringBuilder4);
//3,2,7,5,

综合用法

//接下来演示下,当一个Stream先后通过filter、map、sort、limit以及distinct处理
//后会发生什么。
List<String> list = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
StringBuilder stringBuilder5 = new StringBuilder();
Stream<Integer> distinct2 = list.stream().filter(ite -> ite.length() <= 6)
        .map(String::length).sorted()
        .limit(3)
        .distinct();
distinct2.forEach(item -> {
    stringBuilder5.append(item).append(",");
});
System.out.println(stringBuilder5);
//0,1,2,

forEach

//forEach
//Stream 提供了方法 “forEach’来迭代流中的每个数据。以下代码片段使用 forEach 输出了10个随机数:
Random random = new Random();
random.ints().limit(10).forEach(System.err::println);

count

//count
//count用来统计流中的元素个数。
List<String> count = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
long count1 = count.stream().count();
System.err.println(count1);
//8

collect

//collect
//collect就是一个归约操作,可以接受各种做法作为参数,将流中的元素累积成一个汇总结果:
List<String> collect = Arrays.asList("mz", "", "mz55", "m", "MZ","Hello","HelloWord","mz");
StringBuilder stringBuilder6 = new StringBuilder();
List<String> mz = collect.stream().filter(item -> item.startsWith("m")).collect(Collectors.toList());
mz.forEach(itme -> {
    stringBuilder6.append(itme).append(",");
});
System.err.println(stringBuilder6.toString());
//mz,mz55,m,mz,

相关推荐

  1. Stream简单

    2024-07-10 16:16:02       31 阅读
  2. stream常见使用

    2024-07-10 16:16:02       24 阅读
  3. SQL中LIMIT简单

    2024-07-10 16:16:02       44 阅读
  4. 【kotlin其它】Gson简单

    2024-07-10 16:16:02       26 阅读
  5. <span style='color:red;'>Stream</span><span style='color:red;'>流</span>

    Stream

    2024-07-10 16:16:02      45 阅读
  6. Stream

    2024-07-10 16:16:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 16:16:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 16:16:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 16:16:02       57 阅读
  4. Python语言-面向对象

    2024-07-10 16:16:02       68 阅读

热门阅读

  1. liunx上修改Firefox版本号

    2024-07-10 16:16:02       20 阅读
  2. PS设计新手如何学习?沈阳PS设计线下培训

    2024-07-10 16:16:02       22 阅读
  3. 深度学习进阶

    2024-07-10 16:16:02       20 阅读
  4. 提示学习的本质是KNN

    2024-07-10 16:16:02       22 阅读
  5. Tomcat

    Tomcat

    2024-07-10 16:16:02      19 阅读
  6. pytorch 源码阅读(1)——torch.complie

    2024-07-10 16:16:02       20 阅读
  7. weapp.socket.io.js

    2024-07-10 16:16:02       15 阅读
  8. 内网和外网的区别及应用

    2024-07-10 16:16:02       24 阅读
  9. Symfony Monorepo:一站式开发的艺术与实践

    2024-07-10 16:16:02       23 阅读
  10. Docker 深度分析与选型指南

    2024-07-10 16:16:02       28 阅读
  11. 深度学习 - 模型剪枝技术详解

    2024-07-10 16:16:02       22 阅读
  12. 基于单片机的火灾自动报警器研究

    2024-07-10 16:16:02       24 阅读