如果需要将流中的元素映射到另一个流中,可以使用map方法。方法签名∶
<R> Stream<R> map(Function < ? super T, ? extends R > mapper);
该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流。
Function中的抽象方法:
此前我们已经学习过java.util.stream.Function 函数式接口,其中唯一的抽象方法为︰
R appLy (T t);
这可以将一种T类型转换成为R类型,而这种转换的动作,就称为"映射"。
/** * 如果需要将流中的元素映射到另一个流中,可以使用map方法. * <R> Stream<R> map(Function<? super T, ? extends R > mapper); * 该接口需要一个Function函数式接口参数,可以将当前流中的T类型数据转换为另一种R类型的流。 * Function中的抽象方法: * R appLy(T t); */ public class Demo5Stream_map { public static void main(String[] args) { // 获取一个String类型的Stream流 Stream<String> stream = Stream.of("1", "2", "3", "4"); // 使用map方法,把字符串类型的整数,转换(映射)为Integer类型的整数 Stream<Integer> stream2 = stream.map((String s) -> { return Integer.parseInt(s); }); // 遍历stream2流 stream2.forEach(i -> System.out.println(i)); } }
统计个数:count
正如旧集合collection 当中的 size方法一样,流提供count方法来数一数其中的元素个数︰
long count();
该方法返回一个long值代表元素个数(不再像旧集合那样是int值)。基本使用:
/** * Stream流中的常用方法_count:用于统计stream流中元素的个数 * Long count( ); * count方法是一个终结方法,返回值是一个Long类型的整数 * 所以不能再继续调用Stream流中的其他方法了 */ public class Demo6Stream_count { public static void main(String[] args) { // 获取一个Stream流 ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); // 把list方法转换为stream流 Stream<Integer> stream = list.stream(); // stream流中的元素个数 long count = stream.count(); // 输出6 System.out.println(count); } }
标签:count,map,Stream,stream,流中,list From: https://www.cnblogs.com/shenziyi/p/16801968.html