Stream流的用法
中间方法,操作Stream流中的数据。
| 方法 | 作用 |
| filter | 过滤 |
| limit | 获取前几个数据 |
| skip | 跳过前几个数据 |
| distinct | 数据去重 |
| concat | 合并两个流 |
| map | 转换数据类型 |
| sorted | 排序 |
使用案例——中间方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;public class Demo {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>();List<Integer> list2 = new ArrayList<>();Collections.addAll(list1, 1, 2, 3, 4, 5);Collections.addAll(list2, 6, 7, 8, 9, 10);List<Integer> collect1 = list1.stream().filter(s -> s >= 3).toList();System.out.println(collect1);// [3, 4, 5]List<Integer> collect2 = list1.stream().limit(3).toList();System.out.println(collect2);// [1, 2, 3]List<Integer> collect3 = list1.stream().skip(2).toList();System.out.println(collect3);// [3, 4, 5]list1.add(1);List<Integer> collect4 = list1.stream().distinct().toList();System.out.println(collect4);// [1, 2, 3, 4, 5]List<Integer> collect5 = Stream.concat(list1.stream(), list2.stream()).toList();System.out.println(collect5);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]List<String> collect6 = list1.stream().map(String::valueOf).toList();System.out.println(collect6);// [1, 2, 3, 4, 5, 1]List<Integer> collect7 = list1.stream().sorted().toList();System.out.println(collect7);// [1, 1, 2, 3, 4, 5]}
}
终结方法,以不同的方式结束Stream流。
| 方法 | 作用 |
| forEach | 遍历 |
| count | 统计 |
| toArray | 收集数据,得到数组 |
| toList | 收集数据,得到集合 |
使用案例——终结方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Demo {public static void main(String[] args) {List<Integer> list = new ArrayList<>();Collections.addAll(list, 1, 2, 3, 4, 5);list.stream().filter(s -> s >= 3).forEach(System.out::println);// 遍历打印long count = list.stream().filter(s -> s >= 3).count();// 统计数量Integer[] array = (Integer[]) list.stream().filter(s -> s >= 3).toArray();// 得到数组List<Integer> collect = list.stream().filter(s -> s >= 3).toList();// 得到集合}
}