获取流的两种方式、Stream_中的常用方法_forEach
获取流的两种方式
获取流的非常简单,有一下这几种方式:
所有的Colleection集合都可以通过Stream默认方法获取流
Stream接口中的of可以获取数组对应的流
参数是一个可变参数,那么我们就可以传递一个数组
案例:
public class Changyongfas {
public static void main(String[] args) {
// 把集合转化为流
ArrayList<String> list = new ArrayList<>();
Stream<String> stream = list.stream();
HashSet<String> set = new HashSet<>();
Stream<String> stream1 = set.stream();
HashMap<String, String> map = new HashMap<>();
Set<String> set1 = map.keySet();
Stream<String> stream2 = set1.stream();
// 获取值,存到以一个Collection集合中
Collection<String> values = map.values();
Stream<String> stream3 = values.stream();
// 获取键值对
Set<Map.Entry<String, String>> entries = map.entrySet();
Stream<Map.Entry<String, String>> stream4 = entries.stream();
// 数组转为流
Stream<Integer> stream5 = Stream.of(1, 2, 3, 4, 5, 6);
Integer[] arr={1,2,3,4,5,6};
Stream<Integer> arr1 = Stream.of(arr);
}
}
集合可以转化为Stream流,数组也能
Stream_中的常用方法_forEach
流的模式非常丰富,可分为两种
1,延迟方法:返回值仍然是流的方法
2,返回值不在是流接口自身的方法(count)(forEach)方法
forEach:该方法接受一个Consumer接口函数,会将每一个流元素交给函数进行处理
Consumer接口是一个消费型的函数式接口,可以传递Lambda表达式,消费数据
简单记:
forEach方法,用来遍历流中的数据
是一个终结者方法,遍历之后就不能继续调用Stream流的其他方法
案例:
public class ForEach {
public static void main(String[] args) {
Stream<String> aa = Stream.of("aa", "bbb", "ccc");
aa.forEach(System.out::println);
}
}
看运行结果: