是的,如果您想搜索列表集合,则可以使用自己的包含/索引方法在Java 8之前找到元素,但只能完成元素,而不是模糊搜索或自定义搜索。目前,它只能旅行。
但是现在是2021年。您是否仍在使用传统的遍历集合来搜索列表集合元素?
那你太过了。使用Java 8中的流搜索元素,您可以使用一系列代码来获取它,而且它确实很优雅!本文不会引入流基金会。我在流系列之前写了一个主题。我不了解公共帐户Java Technology Stack,然后在公共帐户Java教程菜单中阅读。
在Java 8中,清单集合可以转换为流。Stream提供了一系列强大的搜索功能,例如:过滤器,查找*,*匹配和其他方法。
例如,现在有初始数据:
用户信息是:名称,年龄,性别。
过滤器(过滤器)使用过滤器方法实现自定义搜索,例如搜索列表
输出结果:
findfirst(查找第一个)以查找流中的第一个元素,例如搜索列表
输出结果:
该示例需要第一个过滤器,然后需要Findfirs,但是如果不需要条件,则无需过滤器。
如果您不了解流,则可以注意公共帐户Java Technology Stack,然后在公共帐户Java Tutorial菜单中阅读Java系列教程。
查找(找到任何一个)以在流中找到任何元素,例如搜索列表
输出结果:
为什么与Findfirs相同的结果的结果?Findfirs有什么区别?
发现纳尔是要找到任何元素。如果数据在串行流中很小,则第一个元素通常会返回,但是并行流中的结果尚不确定。它可能是流中的任何元素。
Findany的目的是提高并行流动操作的性能,但是如果需要固定的结果,建议使用Findfirst。
本文的所有完整示例源代码都已上传:
https://github.com/javastacks/javastack
任何匹配
输出结果:
*比赛返回布尔值的结果。
notexing(空匹配)查找流中的元素是否没有匹配,例如搜索列表
输出结果:
该方法的作用与Anymatch相反。
AllMatch(完全匹配)发现流中的元素是否都匹配,例如搜索列表
输出结果:
可以完成上述搜索操作的所有行吗?它非常简单和优雅吗?
对于列表以外的集合,可以将它们转换为列表,然后转换为流,然后搜索搜索操作。对于流,搜索只是儿科。您学会了使用它吗?
将其发送给您周围的同事,以使您的代码更加优雅!
如果您不使用Java 8的新知识点(lambda,流,功能接口等),则可以注意公共帐户:Java Technology Stack,请在Java教程菜单中阅读,Java 8+我写了所有教程束的系列教程。
本文的所有完整示例源代码都已上传:
https://github.com/javastacks/javastack
欢迎学习,其中将提供Java示例!
好吧,这是今天的分享。后者的堆栈负责人将分享更多有趣的Java技术和最新技术信息。请注意公共帐户Java Technology Stack以推动第一次。完成后,请在公共帐户的背景下回复关键字“访谈”。
最后,我认为我的文章收获给您,移动我的小手,给我一点手,向前阅读并不容易。创建并不容易。
公共帐户:Java技术堆栈