JDK8流式(Stream)API处理集合
流式API是JDK8中新增的一项函数式编程技术,可以通过API中提供的相关接口,方法轻松简洁的实现对于集合元素的过滤,搜索,排序,收集等操作。流式API处理接口分为以下几个步骤:
- 获取Stream对象
- 过滤,映射
- 遍历,排序,统计,收集等操作
实例:
public class Demo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("rose");
list.add("jame");
list.add("smith");
list.add("allen");
list.add("kobe");
list.add("admin");
list.add("adom");
list.add("lily");
//请将集合中包含a的name存储到新集合并返回
//传统的写法
ArrayList<String> list2 = new ArrayList<>();
for (String s : list) {
if(s.contains("a") && s.startsWith("a")){
list2.add(s);
}
}
//流式API 函数式编程(链式编程)
List<String> l = list.stream()
.filter(s->s.contains("a")) //过滤
.filter(s->s.startsWith("a")) //过滤
// .count(); //统计
.collect(Collectors.toList()); //收集
// .forEach(s->System.out.println(s)); //遍历
l.forEach(s->System.out.println(s));
// System.out.println(c);
}
}
集合提供数据支持,Stream提供集合计算