Java Stream API中常用的函数及使用示例
发布时间:2023-06-27 00:46:01
Java Stream API是Java 8中引入的一种新的API,它提供了一种优雅并且高效的方式来处理集合数据。Stream API提供了很多原始类型和对象流,可以使用各种函数来对流进行操作。
常用的函数:
1. filter:用于筛选出符合条件的元素。
2. map:用于将一个流中的元素映射到另一个流中。
3. flatMap:用于将一个流中的元素映射成多个流,然后将这些流合并成一个流。
4. distinct:用于去除流中的重复元素。
5. sorted:用于对流中的元素进行排序。
6. limit:用于保留指定个数的元素。
7. skip:用于跳过指定个数的元素。
8. forEach:用于迭代流中的所有元素。
9. reduce:用于将流中的元素归约成一个元素,例如对所有元素求和、求最大值等。
10. collect:用于将流中的元素收集到一个集合中。
以下是使用示例:
1. filter函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
.filter(x -> x%2 == 0)
.collect(Collectors.toList());
System.out.println(result);
// [2, 4]
2. map函数:
List<String> list = Arrays.asList("hello", "world");
List<String> result = list.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(result);
// ["HELLO", "WORLD"]
3. flatMap函数:
List<List<Integer>> list = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4, 5),
Arrays.asList(6, 7, 8, 9)
);
List<Integer> result = list.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
4. distinct函数:
List<Integer> list = Arrays.asList(1, 1, 2, 2, 3, 3, 4, 5);
List<Integer> result = list.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5]
5. sorted函数:
List<Integer> list = Arrays.asList(3, 1, 4, 2, 5);
List<Integer> result = list.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5]
6. limit函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
.limit(3)
.collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3]
7. skip函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
.skip(3)
.collect(Collectors.toList());
System.out.println(result);
// [4, 5]
8. forEach函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream()
.forEach(System.out::println);
// 1 2 3 4 5
9. reduce函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int result = list.stream()
.reduce(0, Integer::sum);
System.out.println(result);
// 15
10. collect函数:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
.filter(x -> x%2 == 0)
.collect(Collectors.toList());
System.out.println(result);
// [2, 4]
Java Stream API提供了很多函数,以上只是其中的十个常用函数。使用Stream API可以大大简化代码并提高效率,特别是在处理大数据量时,是非常有用的。
