java.util.stream.Stream
是 Java 8 中引入的一个重要类,用于支持对集合元素进行处理的功能。它提供了一种声明式的方式来操作集合数据,使得代码更加清晰、简洁。
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
// 创建一个流
Stream<String> stream = Stream.of("Java", "Python", "C++", "JavaScript", "Ruby");
// 1. 遍历流中的元素
stream.forEach(System.out::println);
// 注意:流只能被消费一次,如果再次使用该流会抛出 IllegalStateException
// stream.forEach(System.out::println); // 这会抛出异常
// 2. 过滤出长度大于3的字符串,并打印
Stream<String> filteredStream = Stream.of("Java", "Python", "C++", "JavaScript", "Ruby")
.filter(s -> s.length() > 3);
filteredStream.forEach(System.out::println);
// 3. 映射操作:将字符串转换为大写并打印
Stream<String> mappedStream = Stream.of("Java", "Python", "C++", "JavaScript", "Ruby")
.map(String::toUpperCase);
mappedStream.forEach(System.out::println);
// 4. 统计流中元素的个数
long count = Stream.of("Java", "Python", "C++", "JavaScript", "Ruby").count();
System.out.println("Total elements: " + count);
// 5. 使用 Stream.generate() 生成无限流,并限制输出个数
Stream.generate(() -> "Hello")
.limit(3)
.forEach(System.out::println);
// 6. 使用 Stream.iterate() 生成斐波那契数列
Stream.iterate(new int[]{0, 1}, fib -> new int[]{fib[1], fib[0] + fib[1]})
.limit(10)
.forEach(fib -> System.out.print(fib[0] + " "));
}
}
示例代码中,我们展示了创建流、遍历流中的元素、过滤、映射、统计元素个数、生成有限流和生成斐波那契数列等常见操作。这些操作可以帮助你更有效地处理集合数据。