Java Stream 是 Java 8 引入的一个强大的功能,它提供了一种便捷的方式来处理集合和数组的元素。通过使用 Stream,我们可以以一种简洁而高效的方式进行数据操作和转换。本文将详细介绍 Java Stream 的基本概念和常用操作,并提供相应的源代码示例。
- 创建 Stream
在开始使用 Stream 之前,我们首先需要创建一个 Stream 对象。Java 中提供了多种方式来创建 Stream,最常见的方式是通过集合或数组创建。
1.1 通过集合创建 Stream
我们可以使用 Collection 接口的 stream() 方法来创建一个 Stream。下面的示例展示了如何通过 List 创建一个 Stream:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class StreamExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = fruits.stream();
// 在这里可以对 stream 进行各种操作
}
}
1.2 通过数组创建 Stream
我们可以使用 Arrays 类的 stream() 方法来创建一个 Stream。下面的示例展示了如何通过数组创建一个 Stream:
import java.util.Arrays;
import java.util.stream.Stream;
public class StreamExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
Stream<int[]> stream = Arrays.stream(numbers);
// 在这里可以对 stream 进行各种操作
}
}
- Stream 的中间操作
Stream 提供了丰富的中间操作方法,用于对数据进行转换、过滤和排序等操作。下面将介绍几个常用的中间操作方法。
2.1 filter
filter 方法用于根据指定的条件过滤元素。下面的示例展示了如何使用 filter 方法筛选出大于 3 的元素:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> filteredNumbers = numbers.stream()
.filter(n -> n > 3)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [4, 5]
}
}
2.2 map
map 方法用于对元素进行映射操作,将一个元素转换为另一个元素。下面的示例展示了如何使用 map 方法将字符串转换为大写:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("hello", "world", "java");
List<String> upperCaseWords = words.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(upperCaseWords); // 输出: [HELLO, WORLD, JAVA]
}
}
2.3 sorted
sorted 方法用于对元素进行排序操作。下面的示例展示了如何使用 sorted 方法对整数列表进行升序排序:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 2, 3, 1, 4);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 输出: [1, 2, 3, 4, 5]
}
}
- Stream 的终端操作
Stream 的终端操作会触发 Stream 的计算并产生最终的结果。下面将介绍几个常用的终端操作方法。
3.1 collect
collect 方法用于将 Stream 中的元素收集到一个集合或字符串中。下面的示例展示了如何使用 collect 方法将元素收集到一个 List 中:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static voidmain(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange");
List<String> collectedFruits = fruits.stream()
.collect(Collectors.toList());
System.out.println(collectedFruits); // 输出: [apple, banana, orange]
}
}
3.2 forEach
forEach 方法用于对 Stream 中的每个元素执行指定的操作。下面的示例展示了如何使用 forEach 方法打印出 Stream 中的元素:
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange");
fruits.stream()
.forEach(System.out::println);
// 输出:
// apple
// banana
// orange
}
}
- 总结
本文介绍了 Java Stream 的基本概念以及常用的操作方法。通过使用 Stream,我们可以以一种简洁而高效的方式对集合和数组进行处理和转换。希望本文能帮助你更好地理解和使用 Java Stream。
本文详细介绍了Java8引入的JavaStream,包括创建Stream的方法,如通过集合和数组,以及常用的中间操作如filter、map和sorted,以及终端操作如collect和forEach。
414

被折叠的 条评论
为什么被折叠?



