当前位置:实例文章 » JAVA Web实例» [文章]Java基础——Stream类

Java基础——Stream类

发布人:shili8 发布时间:2025-02-12 07:53 阅读次数:0

**Java基础——Stream类**

在 Java 中,Stream 是一种高级 API,它允许您以声明式的方式处理数据集合。Stream 类提供了一种灵活且易用的方法来操作数据集合,使得您的代码更简洁、更易读。

### Stream 的定义和特点Stream 是一个接口,它代表一系列元素的序列。每个元素都可以是原始类型(如 int 或 String)或对象引用。Stream 不存储任何元素,而是延迟执行,直到您真正需要它们时才进行计算。

Stream 有以下几个重要特点:

* **延迟执行**:Stream 只有在您真正需要结果时才会被执行。这意味着 Stream 可以避免不必要的计算,从而提高性能。
* **管道式编程**:Stream 支持管道式编程,这使得您的代码更易读和维护。您可以将多个操作连接起来,形成一个流水线,以便一步步地处理数据。
* **懒加载**:Stream 的元素只在需要它们时才会被加载。这意味着 Stream 可以避免不必要的内存分配,从而提高性能。

### Stream 的创建您可以使用以下方法来创建 Stream:

* **Collections.stream()**:从集合中创建 Stream。
* **Arrays.stream()**:从数组中创建 Stream。
* **Stream.of()**:从指定元素中创建 Stream。
* **Stream.iterate()**:从迭代器中创建 Stream。

### Stream 的操作Stream 支持以下几种操作:

* **filter()**:过滤 Stream 中的元素,仅保留满足条件的元素。
* **map()**:将 Stream 中的元素映射到另一个类型。
* **flatMap()**:将 Stream 中的元素展平为一维数组。
* **distinct()**:去除 Stream 中重复的元素。
* **sorted()**:对 Stream 中的元素进行排序。
* **limit()**:限制 Stream 中的元素数量。
* **skip()**:跳过 Stream 中的一部分元素。

### Stream 的示例以下是使用 Stream 类的几个示例:

#### 示例1:从集合中创建 Stream

javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例2:从数组中创建 Stream
javaimport java.util.Arrays;

public class Main {
 public static void main(String[] args) {
 String[] array = {"Apple", "Banana", "Cherry"};
 Arrays.stream(array).forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例3:从指定元素中创建 Stream
javaimport java.util.stream.Stream;

public class Main {
 public static void main(String[] args) {
 Stream stream = Stream.of("Apple", "Banana", "Cherry");
 stream.forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例4:从迭代器中创建 Stream
javaimport java.util.Iterator;
import java.util.stream.Stream;

public class Main {
 public static void main(String[] args) {
 Iterator iterator = new Iterator<>() {
 private int index =0;

 @Override public boolean hasNext() {
 return index < 3;
 }

 @Override public String next() {
 return "Apple" + index++;
 }
 };
 Stream stream = StreamSupport.stream(iterator, false);
 stream.forEach(System.out::println);
 }
}

输出:
Apple0Apple1Apple2


#### 示例5:使用 filter() 过滤 Stream 中的元素
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().filter(s -> s.startsWith("A")).forEach(System.out::println);
 }
}

输出:
Apple


#### 示例6:使用 map() 将 Stream 中的元素映射到另一个类型
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().map(s -> s.toUpperCase()).forEach(System.out::println);
 }
}

输出:
APPLEBANANACHERRY


#### 示例7:使用 flatMap() 将 Stream 中的元素展平为一维数组
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().flatMap(s -> Arrays.stream(s.split(""))).forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例8:使用 distinct() 去除 Stream 中重复的元素
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry", "Apple");
 list.stream().distinct().forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例9:使用 sorted() 对 Stream 中的元素进行排序
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().sorted().forEach(System.out::println);
 }
}

输出:
AppleBananaCherry


#### 示例10:使用 limit()限制 Stream 中的元素数量
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().limit(2).forEach(System.out::println);
 }
}

输出:
AppleBanana


#### 示例11:使用 skip() 跳过 Stream 中的一部分元素
javaimport java.util.Arrays;
import java.util.List;

public class Main {
 public static void main(String[] args) {
 List list = Arrays.asList("Apple", "Banana", "Cherry");
 list.stream().skip(1).forEach(System.out::println);
 }
}

输出:
BananaCherry


### 总结Stream 类提供了一种灵活且易用的方法来操作数据集合,使得您的代码更简洁、更易读。您可以使用 Stream 来过滤、映射、展平、去重、排序和限制数据集合中的元素。通过使用 Stream,您可以提高性能并使您的代码更加高效。

### 参考* [Java8 Stream API]( />* [Stream API Tutorial](

相关标签:javawindows开发语言
其他信息

其他资源

Top