使用 Stream API 简化集合操作
使用 Stream API 简化集合操作
在 Java 8 中,引入了 Stream API,使得我们可以通过链式调用来进行集合操作,避免了传统的循环迭代方式。本文将介绍如何使用 Stream API 简化集合操作,并通过代码示例进行演示。
一、常用的 Stream API 操作
在 Stream API 中,常用的操作包括:
- map:对集合中的元素进行映射操作;
- filter:对集合中的元素进行过滤操作;
- distinct:去重操作;
- sorted:排序操作;
- limit:限制返回结果的个数;
- collect:将结果转换为集合。
二、示例代码
下面通过一个示例代码来演示如何使用 Stream API 简化集合操作。假设我们有一个包含多个字符串的集合,我们需要对其中的字符串进行如下操作:
- 将字符串全部转换为大写;
- 过滤出包含字母 "A" 的字符串;
- 去重;
- 按字符串长度进行排序;
- 返回前 3 个字符串。
使用传统的循环迭代方式实现代码如下:
List<String> strings = Arrays.asList("apple", "banana", "orange", "pear", "grape", "lemon");
List<String> result = new ArrayList<>();
for (String string : strings) {
if (string.contains("A")) {
result.add(string.toUpperCase());
}
}
Set<String> set = new HashSet<>();
for (String string : result) {
set.add(string);
}
List<String> sortedList = new ArrayList<>(set);
Collections.sort(sortedList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
List<String> finalList = new ArrayList<>();
for (int i = 0; i < Math.min(3, sortedList.size()); i++) {
finalList.add(sortedList.get(i));
}
System.out.println(finalList);
使用 Stream API 实现代码如下:
List<String> strings = Arrays.asList("apple", "banana", "orange", "pear", "grape", "lemon");
List<String> finalList = strings.stream()
.map(String::toUpperCase)
.filter(s -> s.contains("A"))
.distinct()
.sorted(Comparator.comparing(String::length))
.limit(3)
.collect(Collectors.toList());
System.out.println(finalList);
从上面的代码可以看出,使用 Stream API 可以大大简化集合操作的代码,使得代码更加清晰、简洁。
分类:
Java
标签:
Java
, Stream API
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)