java从集合和数组获取stream流
在 java 的编程过程中,stream
流是处理集合、数组等数据结构的重要工具,它提供了高效且简洁的操作方式。
本文将详细介绍如何从集合、数组等数据结构中获取 stream
流。
1. 从集合获取 stream
java 的 collection
接口为我们提供了直接获取 stream
的方法:
方法
stream()
:获取一个顺序流。parallelstream()
:获取一个并行流。
示例代码
import java.util.*; import java.util.stream.*; public class main { public static void main(string[] args) { // 创建集合 list<string> list = arrays.aslist("a", "b", "c"); // 获取顺序流 stream<string> stream = list.stream(); stream.foreach(system.out::println); // 获取并行流 stream<string> parallelstream = list.parallelstream(); parallelstream.foreach(system.out::println); } }
输出结果:
a
b
c
2. 从数组获取 stream
arrays
类提供了静态方法 stream()
用于从数组生成流。
方法
arrays.stream(t[] array)
:将整个数组转换为顺序流。arrays.stream(t[] array, int startinclusive, int endexclusive)
:将数组的部分范围转换为流。
示例代码
import java.util.*; import java.util.stream.*; public class main { public static void main(string[] args) { // 创建数组 string[] array = { "a", "b", "c", "d" }; // 将整个数组转换为流 stream<string> stream = arrays.stream(array); stream.foreach(system.out::println); // 将数组部分范围转换为流 stream<string> partialstream = arrays.stream(array, 1, 3); partialstream.foreach(system.out::println); // 输出 b, c } }
输出结果:
a
b
c
d
b
c
3. 使用 stream.of 获取流
stream
接口提供了静态方法 stream.of()
,可以直接从元素或数组生成流。
示例代码
import java.util.stream.*; public class main { public static void main(string[] args) { // 使用 stream.of 从元素生成流 stream<string> stream = stream.of("a", "b", "c"); stream.foreach(system.out::println); // 使用 stream.of 从数组生成流 string[] array = { "x", "y", "z" }; stream<string> arraystream = stream.of(array); arraystream.foreach(system.out::println); } }
输出结果:
a
b
c
x
y
z
4. 从基本类型数组获取 stream
对于基本类型数组(如 int[]
、double[]
),可以使用专门的流方法来生成流。
方法
intstream.of(int... values)
doublestream.of(double... values)
arrays.stream(int[] array)
示例代码
import java.util.stream.*; public class main { public static void main(string[] args) { // 使用 intstream.of intstream intstream = intstream.of(1, 2, 3, 4); intstream.foreach(system.out::println); // 使用 arrays.stream int[] intarray = { 5, 6, 7, 8 }; intstream arraystream = arrays.stream(intarray); arraystream.foreach(system.out::println); } }
输出结果:
1
2
3
4
5
6
7
8
5. 从 map 获取 stream
map
不属于 collection
接口的子类,因此不能直接调用 stream()
方法。
我们可以通过 entryset()
、keyset()
或 values()
间接获取流。
示例代码
import java.util.*; import java.util.stream.*; public class main { public static void main(string[] args) { // 创建 map map<string, integer> map = new hashmap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); // 获取键流 stream<string> keystream = map.keyset().stream(); keystream.foreach(system.out::println); // 获取值流 stream<integer> valuestream = map.values().stream(); valuestream.foreach(system.out::println); // 获取键值对流 stream<map.entry<string, integer>> entrystream = map.entryset().stream(); entrystream.foreach(entry -> system.out.println(entry.getkey() + ": " + entry.getvalue())); } }
输出结果:
a
b
c
1
2
3
a: 1
b: 2
c: 3
总结
数据类型 | 方法 |
---|---|
集合 | stream() 或 parallelstream() |
数组 | arrays.stream() 或 stream.of() |
基本类型数组 | intstream.of() 或 arrays.stream() |
map | 使用 entryset()、keyset()、values() |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论