简介
流(Stream)是 Java 8 引入的一种处理集合数据的抽象概念,它提供了一种更简洁、更灵活的方式来操作和处理集合数据。流可以看作是一系列元素的管道,可以对这些元素进行筛选、转换、排序、归约等操作,实现各种数据处理需求。与传统的循环迭代方式相比,流的代码更易读、更易于并行化处理,并且能够充分发挥多核处理器的优势。通过使用流,可以提高代码的可读性和可维护性,同时也能够更高效地处理大规模数据集合。
Stream的常用案例
1.steam将list集合转set集合
public static void main(String [] args){
List<Student> students=Arrays.asList(new Student("小明",18),new Student("小黑",16),new Student("小红",17));
//转成流并进行set集合转换
Set<Student> sets=students.stream().collect(Collectors.toSet());
//集合遍历
sets.forEach(stu->System.out.println(stu.toString()));
}
在上面的示例中,我们首先创建了一个 List
集合 list
,包含了三个对象。然后使用 stream
方法将其转换为流,接着使用 collect
方法将流中的元素收集到一个 Set
集合中,使用 Collectors.toSet()
指定要收集到的集合类型。最终得到了一个包含唯一元素的 Set
集合。
注意:转成set集合需要重写实体类Student的equals
方法和 hashCode
方法。
2.steam将list集合转map集合
public static void main(String [] args){
List<Student> students=Arrays.asList(new Student("小明",18),new Student("小黑",16),new Student("小红",17));
//转成Stream
Stream<Student> stream=students.stream();
//转Map
Map<String,Student> map=stream.collect(Collectors.toMap(student->student.getName(), student->student));
//遍历
map.forEach((key,value)->System.out.println(key+"--"+value));
}
在上面的示例中,我们首先创建了一个包含学生对象的 List<Student&