1.Collection集合获取流
java.util.Collection 接口
中加入了default方法stream
用来获取流,所以其所有实现类均可获取流
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
public class DemoCollection {
public static void main(String[] args) {
//List集合
List<String> list = new ArrayList<>();
Stream<String> streamList = list.stream();//直接使用默认方法获取流
//Set集合
Set<String> set = new HashSet<>();
Stream<String> streamSet = set.stream();//直接使用默认方法获取流
}
}
2.Map集合获取流
java.util.Map
接口不是Collection
的子接口,且其K-V数据结构不符合流元素的单一特征,所以应先把Map中的 valuse 或者 key 或者 键值对entry 先转化为Collection集合
import java.util.*;
import java.util.stream.Stream;
public class DemoMap {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
//使用key值的set集合创建Stream流
Set<String> set01 = map.keySet();
Stream<String> streamMap01 = set01.stream();
//使用键值对值的set集合创建Stream流
Set<Map.Entry<String,String>> set02 = map.entrySet();
Stream<Map.Entry<String, String>> streamMap02 = set02.stream();
//使用value值的Collection集合创建Stream流
Collection<String> coll = map.values();
Stream<String> streamMap03 = coll.stream();
}
}
数组获取流
如果使用的不是集合或映射而是数组,由于数组对象不可能添加默认方法,所以
Stream 接口中提供了静态方法of
,使用很简单:
import java.util.stream.Stream;
public class DemoArrays {
public static void main(String[] args) {
String[] strs = {"as","zx","qw","123"};
Stream<String> strArrays = Stream.of(strs);
}
}