stream流操作

简介: stream流操作

背景

   日常开发中一些好的代码设计是完全可以复用,他能简单枯燥的增删改查变得有趣。同时与他人交流及学习优秀的代码设计,并在日常工作中实践或者优化重构自己的代码,是提升自己编码能力重要途径之一,本次交流旨在讲解一些优秀的代码设计并做交流。

stream流操作

  在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的 方式进行逐个处理,或者使用Stream的方式进行处理。

例如,现在有这么一个需求:

     从给定句子中返回单词长度大于5的单词列表,按长度倒序输出,最多返回3个

在JAVA7及之前的代码中,我们会可以照如下的方式进行实现:

publicList<String>sortGetTop3LongWords(@NotNullStringsentence) {
// 先切割句子,获取具体的单词信息String[] words=sentence.split(" ");
List<String>wordList=newArrayList<>();
// 循环判断单词的长度,先过滤出符合长度要求的单词for (Stringword : words) {
if (word.length() >5) {
wordList.add(word);
    }
    }
// 对符合条件的列表按照长度进行排序wordList.sort((o1, o2) ->o2.length() -o1.length());
// 判断list结果长度,如果大于3则截取前三个数据的子list返回if (wordList.size() >3) {
wordList=wordList.subList(0, 3);
    }
returnwordList;
}

在JAVA8及之后的版本中,借助Stream流,我们可以更加优雅的写出如下代码:

publicList<String>sortGetTop3LongWordsByStream(@NotNullStringsentence)
{
returnArrays.stream(sentence.split(" "))
        .filter(word->word.length() >5)
        .sorted((o1, o2) ->o2.length() -o1.length())
        .limit(3)
        .collect(Collectors.toList());
}

直观感受上, Stream 的实现方式代码更加简洁、一气呵成。很多的同学在代码中也经常使用 Stream流,但是对Stream流的认知往往也是仅限于会一些简单的 filter 、 map 、 collect 等 操作,但JAVA的Stream可以适用的场景与能力远不止这些。

相关文章
|
6月前
|
Java
【Java】Stream流是什么,如何使用Stream流?
【Java】Stream流是什么,如何使用Stream流?
82 0
|
6月前
|
存储 Java API
Stream流
Stream流
63 1
|
2月前
|
Java 数据处理
Stream流的简单使用
这篇文章介绍了Java中Stream流的基本概念和使用方法。文章解释了Stream流的三类方法:获取流、中间方法和终结方法。详细讨论了如何生成Stream流,包括从Collection体系集合、Map体系集合、数组和同种数据类型的多个数据中生成流。接着,介绍了Stream流的中间操作方法,如`filter`、`limit`、`skip`、`concat`和`distinct`。文章还讨论了Stream流的终结方法,如`forEach`和`count`,以及收集方法,如`collect`。最后,通过几个例子演示了如何使用Stream流进行数据处理和收集操作。
|
6月前
|
Java 容器
Stream 流常见基本操作
Stream 流常见基本操作
|
5月前
|
API
Stream流知识
Stream流知识
30 0
|
5月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
79 0
|
6月前
|
前端开发 数据库
【Stream流】Sort排序详解
【Stream流】Sort排序详解
145 0
Stream流操作-简单结果终止方法
Stream流操作-简单结果终止方法
116 0
|
6月前
|
Java
Stream流教程
Stream流教程
68 0
|
6月前
|
Java 数据处理
关于Stream流和Lambda表达式,这些技巧你都知道吗?
关于Stream流和Lambda表达式,这些技巧你都知道吗?